Re: LFS build of File-5.45 problem stops on compilation of seccomp.c

"Rainer Fiebig" ([email protected] via lfs-support Mailing List) <[email protected]> Fri, 21 Feb 2025 11:11:38 +0100
Newsgroups gmane.linux.lfs.support
Message-ID <[email protected]>
Am 20.02.25 um 17:29 schrieb Xi Ruoyao ([email protected] via
lfs-support Mailing List):
> On Fri, 2025-02-21 at 00:22 +0800, Xi Ruoyao wrote:
>> On Thu, 2025-02-20 at 09:20 -0600, dave kohler wrote:
>>> attempt to open /mnt/lfs/lib/../lib/libseccomp.so succeeded
>>
>> So this means your symlink is indeed incorrect.  The symlink
>> /mnt/lfs/lib should points to the relative path usr/lib, not the
>> absolute path /usr/lib.
>>
>> The mistake also caused the command
>>
>> chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
>>
>> to change your /usr/lib to be owned by LFS, triggering the warning from
>> Arch package manager you've mentioned in another thread.
>>
>> Now you need to fix your host distro before another attempt of LFS
>> build.  First run "chown root /usr/lib /usr/bin" to fix the ownership.
>>
>> Then you need to check if there is any file/directory owned by the LFS
>> user in your /usr/lib and /usr/bin.  For each one, figure out which Arch
>> package should provide that file or directory, then reinstall the Arch
>> package.  If no Arch package should provide it, just remove it.
>>
>> After fixing Arch, start over building LFS and make sure typing correct
>> commands this time.
>>
>> I guess we should just remove $LFS/lib, $LFS/bin, and $LFS/sbin from the
>> chown command, so with an incorrect symlink the build will fail early at
>> Chapter 5 Glibc instead of silently breaking the host distro.  I'll do
>> it after the 12.3 release.
> 
> https://wiki.linuxfromscratch.org/lfs/ticket/5655

Maybe the problem is not the chown-statement but these two steps:


mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}

for i in bin lib sbin; do
  ln -sv usr/$i $LFS/$i
done


While the mkdir-statement produces the intended results irrespective of
where it is issued, the for-loop only does so if the user is in
/mnt/lfs.  If he happens to be in / of the host-system, the results are
what we have seen in this case, even if he copied/pasted the
instructions, as the OP claims to have done.

Maybe I have overlooked a line in the book (12.2) but it seems that the
instructions only _assume_ that the user is in $LFS when starting the
for-loop but don't make sure that he actually is.

So, perhaps a  cd $LFS  after the mkdir-statement should be added to
ensure that the links are set correctly.

Rainer

-- 
http://lists.linuxfromscratch.org/sympa/info/lfs-support
Unsubscribe: See the above information page