Hello,
I'm using Ubuntu focal. After pulling a newer version of qemu and locally moving up the 'go' package in the make.sh script, I finally got the logs to create rootfiles for aarch64 and armv5tel.
What exact distro are you using? I could not manage do complete a build for aarch64 nor armv5tel as I ran into segmentation faults.
Kind reagards
Holger
Am 21.07.21 um 20:15 schrieb Michael Tremer:
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 holger.sunke@posteo.de 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 holger.sunke@posteo.de 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 holger.sunke@posteo.de 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