Hello, We had this one before on the list. I can’t find it though. What distribution are you using? It looks like QEMU is too old. The statx syscall (291) isn’t supported. -Michael > On 21 Jul 2021, at 18:55, Holger Sunke wrote: > > Hello Michael, > > I think this should generally work, but currently I'm stuck with strange issues like these: > > Jul 21 17:51:53: Building glibc glibc-2.32.tar.xz checksum OK > + cd /usr/src/lfs > + make -f glibc LFS_BASEDIR=/usr/src install > ====================================== Installing glibc-2.32 ... > Install started; saving file list to /usr/src/lsalr ... > cd /usr/src/glibc-2.32 && patch -Np1 < /usr/src/src/patches/glibc-localedef-no-archive.patch > patching file localedata/Makefile > Hunk #1 succeeded at 440 with fuzz 1 (offset 217 lines). > cd /usr/src/glibc-build && \ > CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC -fstack-clash-protection -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -Wno-error=maybe-uninitialized -fno-asynchronous-unwind-tables" \ > /usr/src/glibc-2.32/configure --build=aarch64-unknown-linux-gnu --prefix=/usr --libexecdir=/usr/lib/glibc --enable-stack-protector=strong --disable-profile --enable-kernel=4.14.0 --enable-add-ons --without-selinux --enable-experimental-malloc --enable-bind-now --disable-crypt > qemu: Unsupported syscall: 291 > /tools_aarch64/bin/ls: cannot access '.': Function not implemented > configure: error: working directory cannot be determined > make: *** [glibc:114: /usr/src/log/glibc-2.32] Error 2 > > ERROR: Building glibc [ FAIL ] > Check /home/holger/development/ipfire/ipfire-2.x/log/_build.base.log for errors if applicable [ FAIL ] > > > I tried building in schroot using Ubuntu bionic and focal. > > Did you already encounter these errors? > > Kind regards > Holger > > > Am 19.07.21 um 13:11 schrieb Michael Tremer: >> Hello Holger, >>> On 15 Jul 2021, at 20:32, Holger Sunke wrote: >>> >>> I guess I have to build ipfire for each different arch to get the log files as source for the root files. >> Yes, that would be the easiest way. For most packages this is not requires as the list of installed files is identical but compilers and other architecture-specific package tends to require this extra work. >>> How do you build ipfire for all the archs? Do you use some kind of VMs? >> You can do either that or use qemu-user-static. This will emulate the other architecture for you instead. >> So you would install qemu-user-static (https://packages.debian.org/buster/qemu-user-static) or whatever the equivalent is in our your distribution of choice and then run these commands: >> Erase the old build: >> ./make.sh clean >> Download a toolchain for the target architecture: >> ./make.sh —-target=aarch64 gettoolchain >> And then you run the build: >> ./make.sh —-target=aarch64 build >> You can then do this for armv6l in next, too. >> The emulated build will take a little bit longer due to the emulation. >> Let me know if this has worked. >> Best, >> -Michael >>> >>> Kind regards >>> >>> Holger >>> >>> >>> >>> On 08.06.21 18:54, Michael Tremer wrote: >>>> Hello Holger, >>>> This patch looks good so far, but the root files are missing. >>>> Do you know what those are? >>>> Otherwise this would be mergeable. >>>> Best, >>>> -Michael >>>>> On 6 Jun 2021, at 18:48, Holger Sunke wrote: >>>>> >>>>> --- >>>>> lfs/Config | 8 ++++++++ >>>>> lfs/go | 9 ++++++--- >>>>> 2 files changed, 14 insertions(+), 3 deletions(-) >>>>> >>>>> diff --git a/lfs/Config b/lfs/Config >>>>> index 7d98e303b..c8be227a1 100644 >>>>> --- a/lfs/Config >>>>> +++ b/lfs/Config >>>>> @@ -138,6 +138,14 @@ ifeq "$(BUILD_ARCH)" "aarch64" >>>>> GOARCH = arm64 >>>>> endif >>>>> >>>>> +ifeq "$(BUILD_ARCH)" "armv5tel" >>>>> + GOARCH = armv6l >>>>> +endif >>>>> + >>>>> +ifeq "$(BUILD_ARCH)" "i586" >>>>> + GOARCH = 386 >>>>> +endif >>>>> + >>>>> ############################################################################### >>>>> # Common Macro Definitions >>>>> ############################################################################### >>>>> diff --git a/lfs/go b/lfs/go >>>>> index 6ebb37080..487ad8486 100644 >>>>> --- a/lfs/go >>>>> +++ b/lfs/go >>>>> @@ -28,10 +28,10 @@ VER = 1.15.4 >>>>> >>>>> THISAPP = go-$(VER) >>>>> DL_FILE = go$(VER).$(GOOS)-$(GOARCH).tar.gz >>>>> -DL_FROM = $(URL_IPFIRE) >>>>> +DL_FROM = https://golang.org/dl/ >>>>> DIR_APP = $(DIR_SRC)/go >>>>> TARGET = $(DIR_INFO)/$(THISAPP) >>>>> -SUP_ARCH = x86_64 >>>>> +SUP_ARCH = x86_64 i586 aarch64 armv5tel >>>>> >>>>> ############################################################################### >>>>> # Top-level Rules >>>>> @@ -41,7 +41,10 @@ objects = $(DL_FILE) >>>>> >>>>> $(DL_FILE) = $(DL_FROM)/$(DL_FILE) >>>>> >>>>> -$(DL_FILE)_MD5 = 8e9d11a16f03372c82c5134278a0bd7d >>>>> +go$(VER).$(GOOS)-amd64.tar.gz_MD5 = 8e9d11a16f03372c82c5134278a0bd7d >>>>> +go$(VER).$(GOOS)-386.tar.gz_MD5 = 8d1c3539c88710273f61b0c810b7448c >>>>> +go$(VER).$(GOOS)-arm64.tar.gz_MD5 = b1846fb093f0261707bda44e158bc5be >>>>> +go$(VER).$(GOOS)-armv6l.tar.gz_MD5 = cf04e0d84de6cbb7d224be1f42a83f02 >>>>> >>>>> install : $(TARGET) >>>>> >>>>> -- >>>>> 2.30.2 >>>>>