[lfs-dev] Multilib patch

spiky0011 spiky0011 at gmail.com
Tue Jan 1 08:50:03 PST 2019


On 30/09/2018 02:57, DJ Lucas wrote:
>
>
> On 08/14/2018 05:54 AM, Thomas Trepl wrote:
>> Hi,
>>
>> for those who are interested in doing {,B}LFS with multilib support,
>> here is a patch on the LFS book adding some instructions to build the
>> LFS core system with multilib support.
>>
>
> <snip>
>
> Updates to this based on Thomas's work at https://io.ax.lt/. This is 
> still very much experimental but coming together nicely. I've been 
> working on jhalfs support. I also have a current patch for trunk (also 
> for Thomas's branch to allow building with jhalfs) and rendered copies 
> for both sysv and systemd in my homedir if anybody would like to take 
> a look:
>
> http://www.linuxfromscratch.org/~dj/Multilib/
>
> Thomas, when you are available, please note the changes WRT separating 
> the lib32 and libx32 with separate <sect2>s. This is required for 
> jhalfs to parse the files correctly. As to the other changes, in 
> additon to -m32/-mx32, I've tried to ensure that we use appropriate 
> -march flags where --host is invalid. None of this is tested 
> thoroughly as of yet, but my ultimate real world goal, in addition to 
> being able to run x86 binaries needed for various tasks, is to be able 
> to build x86 java without a full x86 LFS build handy. As of now, 
> jhalfs builds to completion on Systemd. I don't believe that I've made 
> any changes that would affect SysV, but I haven't tested sysv-multilib 
> just yet.
>
> HTH
>
> --DJ
>
DJ Lucas.

I have tried building your multilib sysV version I get a error in 
building libcap-2.25 x32bit.

So far no problems upto here, I have restarted from ch6 a 2nd time 
incase I made a mistake.

Error

libcap-2.25# make CC="gcc -mx32"
make -C libcap all
make[1]: Entering directory '/sources/libcap-2.25/libcap'
=> making cap_names.list.h from 
/sources/libcap-2.25/libcap/../libcap/include/uapi/linux/capability.h
perl -e 'while ($l=<>) { if ($l =~ /^\#define[ \t](CAP[_A-Z]+)[ 
\t]+([0-9]+)\s+$/) { $tok=$1; $val=$2; $tok =~ tr/A-Z/a-z/; print 
"{\"$tok\",$val},\n"; } }' 
/sources/libcap-2.25/libcap/../libcap/include/uapi/linux/capability.h | 
fgrep -v 0x > cap_names.list.h
gcc -mx32 -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC 
-I/sources/libcap-2.25/libcap/../libcap/include/uapi 
-I/sources/libcap-2.25/libcap/../libcap/include _makenames.c -o _makenames
./_makenames > cap_names.h
/bin/sh: ./_makenames: cannot execute binary file: Exec format error
make[1]: *** [Makefile:41: cap_names.h] Error 126
make[1]: Leaving directory '/sources/libcap-2.25/libcap'
make: *** [Makefile:12: all] Error 2


I have no idea how to check what is wrong. If this error could stem back 
to ch5 then ok.

Both of the other parts built fine from libcap



More information about the lfs-dev mailing list