Code Monkey home page Code Monkey logo

crux-arm-release's People

Contributors

mhoush avatar pitill0 avatar sepen avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

crux-arm-release's Issues

nftables footprint missmatch

If we do all ports in dependency order we get a footprint error in nftables:

=======> ERROR: Footprint mismatch found:
MISSING   drwxr-xr-x      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/
MISSING   drwxr-xr-x      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/EGG-INFO/
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/EGG-INFO/PKG-INFO
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/EGG-INFO/SOURCES.txt
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/EGG-INFO/dependency_links.txt
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/EGG-INFO/not-zip-safe
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/EGG-INFO/top_level.txt
MISSING   drwxr-xr-x      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/__init__.py
MISSING   drwxr-xr-x      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/__pycache__/
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/__pycache__/__init__.cpytho
n-310.opt-1.pyc
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/__pycache__/__init__.cpytho
n-310.pyc
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/__pycache__/nftables.cpytho
n-310.opt-1.pyc
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/__pycache__/nftables.cpytho
n-310.pyc
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/nftables.py
MISSING   -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg/nftables/schema.json
NEW       -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables-0.1-py3.10.egg-info
NEW       drwxr-xr-x      root/root       usr/lib/python3.10/site-packages/nftables/
NEW       -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables/__init__.py
NEW       drwxr-xr-x      root/root       usr/lib/python3.10/site-packages/nftables/__pycache__/
NEW       -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables/__pycache__/__init__.cpython-310.opt-1.pyc
NEW       -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables/__pycache__/__init__.cpython-310.pyc
NEW       -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables/__pycache__/nftables.cpython-310.opt-1.pyc
NEW       -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables/__pycache__/nftables.cpython-310.pyc
NEW       -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables/nftables.py
NEW       -rw-r--r--      root/root       usr/lib/python3.10/site-packages/nftables/schema.json
=======> ERROR: Building '/workspace/ports/core/nftables/nftables#1.0.5-1.pkg.tar.xz' failed.

Stage1 rootfs contains files in /var/lib/pkg/rejected

pitillo asked me to create an issue for this. After a 'make bootstrap' and 'make release' the new rootfs contains files in /var/lib/pkg/rejected that can probably just be removed for the release:

(build) c711bd5ce4e0 ~/crux-arm-release # bsdtar tvf rootfs.stage1.tar.xz ./var/lib/pkg/rejected
drwxr-xr-x  0 root   root        0 Dec 10 01:38 var/lib/pkg/rejected/
drwxr-xr-x  0 root   root        0 Dec 10 02:39 var/lib/pkg/rejected/etc/
-rw-r--r--  0 root   root      114 Dec 10 01:37 var/lib/pkg/rejected/etc/resolv.conf
-rw-r--r--  0 root   root     1591 Dec 10 01:37 var/lib/pkg/rejected/etc/ld.so.cache
-rw-r--r--  0 root   root     1361 Dec 10 01:41 var/lib/pkg/rejected/etc/prt-get.conf
-rw-r--r--  0 root   root      615 Dec 10 02:39 var/lib/pkg/rejected/etc/pkgmk.conf

Release build not setting pkgmk.conf and prt-get.conf file properly

We are facing an issue when building the final release rootfs. The process is always setting up generic files instead of optimized ones.

This patch is intended to copy specific config files (pkgmk.conf and prt-get.conf) for optimized devices to the corresponding path according to the optimization chosen:

$ diff -uN Makefile.orig Makefile
--- Makefile.orig       2022-10-30 00:03:18.774386901 +0200
+++ Makefile    2022-10-30 00:03:12.122385746 +0200
@@ -344,12 +344,26 @@
 $(RELEASE_TAR_FILE): $(ROOTFS_STAGE1_DIR)
        @echo "[`date +'%F %T'`] Cleaning up"
        @test ! -d $(ROOTFS_STAGE1_DIR)/workspace || sudo rmdir $(ROOTFS_STAGE1_DIR)/workspace
-       @sudo rm -f $(ROOTFS_STAGE1_DIR)/etc/pkgmk.conf && \
-               sudo cp $(PORTS_DIR)/core-arm/pkgutils/pkgmk.conf $(ROOTFS_STAGE1_DIR)/etc/pkgmk.conf
-       @sudo rm -f $(ROOTFS_STAGE1_DIR)/etc/prt-get.conf && \
-               sudo cp $(PORTS_DIR)/core-arm/prt-get/prt-get.conf $(ROOTFS_STAGE1_DIR)/etc/prt-get.conf
+ifeq ($(DEVICE_OPTIMIZATION),arm)
+       @sudo cp -v $(PORTS_DIR)/core-$(DEVICE_OPTIMIZATION)/pkgutils/pkgmk.conf $(ROOTFS_STAGE1_DIR)/etc/ || true && \
+               sudo cp -v $(PORTS_DIR)/core-$(DEVICE_OPTIMIZATION)/prt-get/prt-get.conf $(ROOTFS_STAGE1_DIR)/etc/ || true
+else ifeq ($(DEVICE_OPTIMIZATION),arm64)
+       @sudo cp -v $(PORTS_DIR)/core-$(DEVICE_OPTIMIZATION)/pkgutils/pkgmk.conf $(ROOTFS_STAGE1_DIR)/etc/ || true  && \
+               sudo cp -v $(PORTS_DIR)/core-$(DEVICE_OPTIMIZATION)/prt-get/prt-get.conf $(ROOTFS_STAGE1_DIR)/ || true
+else
+       @if [ -e "$(PORTS_DIR)/$(DEVICE_OPTIMIZATION)-arm/pkgutils/pkgmk.conf" ]; then \
+               sudo cp -v $(PORTS_DIR)/$(DEVICE_OPTIMIZATION)-arm/pkgutils/pkgmk.conf $(ROOTFS_STAGE1_DIR)/etc/ ;\
+       else \
+               sudo cp -v $(PORTS_DIR)/$(DEVICE_OPTIMIZATION)-arm64/pkgutils/pkgmk.conf $(ROOTFS_STAGE1_DIR)/etc/ ;\
+       fi
+       @if [ -e "$(PORTS_DIR)/$(DEVICE_OPTIMIZATION)-arm/prt-get/prt-get.conf" ]; then \
+               sudo cp -v $(PORTS_DIR)/$(DEVICE_OPTIMIZATION)-arm/prt-get/prt-get.conf $(ROOTFS_STAGE1_DIR)/etc/ ;\
+       else \
+               sudo cp -v $(PORTS_DIR)/$(DEVICE_OPTIMIZATION)-arm64/prt-get/prt-get.conf $(ROOTFS_STAGE1_DIR)/etc/ ;\
+       fi
+endif
        @echo "[`date +'%F %T'`] Building $(RELEASE_TAR_FILE)"
        @cd $(ROOTFS_STAGE1_DIR) && \
-               sudo tar cJf $(RELEASE_TAR_FILE) * && \
+               sudo tar cJf ../$(RELEASE_TAR_FILE) * && \
                sudo chown $(CURRENT_UID):$(CURRENT_GID) $(RELEASE_TAR_FILE)
-       @echo "[`date +'%F %T'`] Release completed"
+       @echo "[`date +'%F %T'`] Release completed"

Release 3.7 odroidxu4

First I will need to create 3.7 branch for odroidxu4-arm repository

Cloning into '/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/odroidxu4-arm'...
warning: Could not find remote branch 3.7 to clone.

Error using curl inside stage1

At the current point, stage1 uses curl to download the sources on each port build. This is correct since we have included curl and openssl in the list of stage0 ports.
This worked fine until we redo openssl in stage1. In this moment, curl is still pointing to the old openssl library version (since the curl binary was compiled on stage0, against the host) so it needs to be rebuilt against new libs.

[2022-10-24 11:58:07] Building port: /workspace/ports/core/cpio
=======> Downloading 'https://ftpmirror.gnu.org/gnu/cpio/cpio-2.13.tar.bz2'.
curl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
=======> ERROR: Downloading 'https://ftpmirror.gnu.org/gnu/cpio/cpio-2.13.tar.bz2' failed.
make: *** [Makefile:259: /workspace/packages.stage1.tar.xz] Error 1

note: the first to fail is cpio, since it is the first port after redoing openssl that needs to download sources (that we haven't downloaded before)

There are several ways to fix this.

  • One could be that we overlay curl and add openssl to it as a library, which it is. With this we would achieve that after redoing openssl curl would be redone, so the binary would be usable again. But we can do all this since the source was downloaded in stage0 (If to build the curl port, we had to call the curl command to download the code, it would continue to give an error)
  • Another option would be to use some hack or workaround. For example having a symlink to the old openssl lib, or providing a static curl in /workspace/bin/curl, but these all seem like dirty stuff.
  • The option that I like the most and that we have already tried at the time is to add a target to the Makefile before entering the chroot so that all the sources are iteratively downloaded and therefore we do not depend on curl within stage1. This way we could once again leave curl and openssl out of the stage0 ports list. This has been used but it would be necessary to test that everything is relinked correctly in stage1.

Stage1 gcc build break

On stage1, gcc port is failing due a problem detecting libmpc headers.
Content of config.log shows the header is detected but there is a missing include to stdio.h

configure:8222: gcc -c -O2 conftest.c >&5
In file included from conftest.c:10:
/usr/include/mpc.h:287:35: error: unknown type name 'FILE' 287 | __MPC_DECLSPEC void mpcr_out_str (FILE *f, mpcr_srcptr r);
| ^~~~
/usr/include/mpc.h:27:1: note: 'FILE' is defined in header '<stdio.h>'; did you forget to '#include <stdio.h>'?
26 | #include "mpfr.h"
27 |

Getting a build error for a missing rootfs target in stage1

The stage0 Makefile target works fine but when proceeding to stage1 I get the following:

$ make stage1
[2022-12-05 00:59:23] Preparing chroot environment (/home/builder/crux-arm-release/rootfs-stage1)
make prepare-stage1-rootfs
make[1]: Entering directory '/home/builder/crux-arm-release'
make[1]: *** No rule to make target '/home/builder/crux-arm-release/rootfs.tar.xz', needed by '/home/builder/crux-arm-release/rootfs-stage1'.  Stop.
make[1]: Leaving directory '/home/builder/crux-arm-release'
make: *** [Makefile:300: stage1] Error 2

The dependencies contain $(ROOTFS_TAR_FILE) but it doesn't appear to have a target of its own.

Make calls without specifying DEVICE_OPTIMIZATIONS break the build.

We need to add $(DEVICE_OPTIMIZATION) option to $(MAKE) calls to sanitize optimized builds and avoid overlaying with generic arm optimization. I've just added it to all calls, so may be we can avoid some of them.

diff Makefile.orig Makefile

diff --git a/Makefile b/Makefile
index 9bb7354..0319237 100644
--- a/Makefile
+++ b/Makefile
@@ -287,8 +287,8 @@ $(PACKAGES_STAGE1_TAR_FILE): $(PORTS_DIR) $(PKGMK_CONFIG_FILE) $(PRTGET_CONFIG_F
 #
 .PHONY: stage0
 stage0:
-       $(MAKE) build-stage0-packages PKGMK_FAKEROOT=yes
-       $(MAKE) build-stage0-rootfs
+       $(MAKE) build-stage0-packages PKGMK_FAKEROOT=yes DEVICE_OPTIMIZATION=$(DEVICE_OPTIMIZATION)
+       $(MAKE) build-stage0-rootfs DEVICE_OPTIMIZATION=$(DEVICE_OPTIMIZATION)

 #------------------------------------------------------------------------------
 # STAGE1
@@ -297,10 +297,10 @@ stage0:
 .PHONY: stage1
 stage1:
        @echo "[`date +'%F %T'`] Preparing chroot environment ($(ROOTFS_STAGE1_DIR))"
-       $(MAKE) prepare-stage1-rootfs
-       $(MAKE) download-stage1-sources
+       $(MAKE) prepare-stage1-rootfs DEVICE_OPTIMIZATION=$(DEVICE_OPTIMIZATION)
+       $(MAKE) download-stage1-sources DEVICE_OPTIMIZATION=$(DEVICE_OPTIMIZATION)
        @echo "[`date +'%F %T'`] Cleaning up before entering into chroot environment"
-       $(MAKE) clean-prtgetconf
+       $(MAKE) clean-prtgetconf DEVICE_OPTIMIZATION=$(DEVICE_OPTIMIZATION)
        @echo "[`date +'%F %T'`] Mounting /dev on $(ROOTFS_STAGE1_DIR)/dev"
        @mountpoint -q $(ROOTFS_STAGE1_DIR)/dev || sudo mount --bind /dev $(ROOTFS_STAGE1_DIR)/dev
        @echo "[`date +'%F %T'`] Mounting /proc on $(ROOTFS_STAGE1_DIR)/proc"
@@ -309,7 +309,7 @@ stage1:
        @mountpoint -q $(ROOTFS_STAGE1_DIR)/workspace || sudo mount --bind $(WORKSPACE_DIR) $(ROOTFS_STAGE1_DIR)/workspace
        @echo "[`date +'%F %T'`] Entering chroot enrivonment"
        @sudo chroot $(ROOTFS_STAGE1_DIR) /bin/bash --login -c \
-               "cd /workspace && $(MAKE) build-stage1-packages PKGMK_FORCE=yes WORKSPACE_DIR=/workspace || exit 0"
+               "cd /workspace && $(MAKE) build-stage1-packages PKGMK_FORCE=yes WORKSPACE_DIR=/workspace DEVICE_OPTIMIZATION=$(DEVICE_OPTIMIZATION) || exit 0"
        @echo "[`date +'%F %T'`] Exiting chroot enrivonment"
        @echo "[`date +'%F %T'`] Unmounting $(ROOTFS_STAGE1_DIR)/workspace"
        @sudo umount -f $(ROOTFS_STAGE1_DIR)/workspace
@@ -326,12 +326,12 @@ stage1:
 bootstrap:
        @echo "[`date +'%F %T'`] Bootstrap started"
        @echo "[`date +'%F %T'`] Running Stage 0"
-       $(MAKE) stage0 2>&1 | tee stage0.log
+       $(MAKE) stage0 DEVICE_OPTIMIZATION=$(DEVICE_OPTIMIZATION) 2>&1 | tee stage0.log
        @grep -e 'failed\.' -e 'succeeded\.' stage0.log
        @echo "[`date +'%F %T'`] Selecting $(ROOTFS_TAR_FILE) -> $(ROOTFS_STAGE0_TAR_FILE)"
        @ln -s $(ROOTFS_STAGE0_TAR_FILE) $(ROOTFS_TAR_FILE)
        @echo "[`date +'%F %T'`] Running Stage 1"
-       $(MAKE) stage1 2>&1 | tee stage1.log
+       $(MAKE) stage1 DEVICE_OPTIMIZATION=$(DEVICE_OPTIMIZATION) 2>&1 | tee stage1.log
        @grep -e 'failed\.' -e 'succeeded\.' stage1.log
        @echo "[`date +'%F %T'`] Bootstrap completed"

make stage1 failed on optimizations when using generic to build them

I have tested these steps to see if we can use a generic rootfs from stage0 ports to build optimizations

  1. Get rootfs.tar.xz from stage0 generic
$ cp -av ~/Downloads/rootfs.stage0.tar.xz .
'~/Downloads/rootfs.stage0.tar.xz' -> './rootfs.stage0.tar.xz'
  1. Prepare it as a base for stage1
$ ln -s rootfs.stage0.tar.xz rootfs.tar.xz
  1. Verify your device is in the list and has the right values
$ ls devices
$ cat devices/odroidxu4.mk
  1. Run stage1 to generate packages optimized for your device
$ DEVICE_OPTIMIZATION=odroidxu4 make stage1 2>&1 | tee stage1.log

I have executed this method without problems until it has reached the glibc port. All these ports were built fine:

attr autoconf libgmp ncurses db libnsl libtirpc zlib flex bzip2 ca-certificates libnghttp2 openssl xz expat lzo linux-pam cpio dash dcron kmod diffutils dumb_runtime_dir ed libpcre2 filesystem findutils

When reaching glibc it gives a compilation error associated with optimizations:

gcc memcmp.c -c -std=gnu11 -fgnu89-inline  -O2 -pipe -mfloat-abi=hard -march=armv7ve -mtune=cortex-a15 -mfpu=neon-vfpv4 -Wall -Wwrite-strings -Wundef -fmerge-all-constants -frounding-math -fstack-protector-strong -fno-common -Wstrict-prototypes -Wold-style-definition -fmath-errno    -fpie   -ftls-model=initial-exec      -I../include -I/workspace/ports/core-arm/glibc/work/src/build/string  -I/workspace/ports/core-arm/glibc/work/src/build  -I../sysdeps/unix/sysv/linux/arm/le  -I../sysdeps/unix/sysv/linux/arm  -I../sysdeps/arm/nptl  -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl  -I../sysdeps/pthread  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv  -I../sysdeps/unix/arm  -I../sysdeps/unix  -I../sysdeps/posix  -I../sysdeps/arm/le/armv7  -I../sysdeps/arm/armv7  -I../sysdeps/arm/armv6t2  -I../sysdeps/arm/armv6  -I../sysdeps/arm/le  -I../sysdeps/arm/include -I../sysdeps/arm  -I../sysdeps/wordsize-32  -I../sysdeps/ieee754/flt-32  -I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754  -I../sysdeps/generic  -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/arm-unknown-linux-gnueabihf/12.2.0/include -isystem /workspace/ports/core-arm/glibc/work/pkg/usr/include -D_LIBC_REENTRANT -include /workspace/ports/core-arm/glibc/work/src/build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h  -DPIC     -DTOP_NAMESPACE=glibc -o /workspace/ports/core-arm/glibc/work/src/build/string/memcmp.o -MD -MP -MF /workspace/ports/core-arm/glibc/work/src/build/string/memcmp.o.dt -MT /workspace/ports/core-arm/glibc/work/src/build/string/memcmp.o
../sysdeps/arm/armv6t2/ffs.S: Assembler messages:
../sysdeps/arm/armv6t2/ffs.S:26: Error: selected processor does not support `rbit r0,r0' in ARM mode
gcc memcmpeq.c -c -std=gnu11 -fgnu89-inline  -O2 -pipe -mfloat-abi=hard -march=armv7ve -mtune=cortex-a15 -mfpu=neon-vfpv4 -Wall -Wwrite-strings -Wundef -fmerge-all-constants -frounding-math -fstack-protector-strong -fno-common -Wstrict-prototypes -Wold-style-definition -fmath-errno    -fpie   -ftls-model=initial-exec      -I../include -I/workspace/ports/core-arm/glibc/work/src/build/string  -I/workspace/ports/core-arm/glibc/work/src/build  -I../sysdeps/unix/sysv/linux/arm/le  -I../sysdeps/unix/sysv/linux/arm  -I../sysdeps/arm/nptl  -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl  -I../sysdeps/pthread  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv  -I../sysdeps/unix/arm  -I../sysdeps/unix  -I../sysdeps/posix  -I../sysdeps/arm/le/armv7  -I../sysdeps/arm/armv7  -I../sysdeps/arm/armv6t2  -I../sysdeps/arm/armv6  -I../sysdeps/arm/le  -I../sysdeps/arm/include -I../sysdeps/arm  -I../sysdeps/wordsize-32  -I../sysdeps/ieee754/flt-32  -I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754  -I../sysdeps/generic  -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/arm-unknown-linux-gnueabihf/12.2.0/include -isystem /workspace/ports/core-arm/glibc/work/pkg/usr/include -D_LIBC_REENTRANT -include /workspace/ports/core-arm/glibc/work/src/build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h  -DPIC     -DTOP_NAMESPACE=glibc -o /workspace/ports/core-arm/glibc/work/src/build/string/memcmpeq.o -MD -MP -MF /workspace/ports/core-arm/glibc/work/src/build/string/memcmpeq.o.dt -MT /workspace/ports/core-arm/glibc/work/src/build/string/memcmpeq.o
make[3]: *** [/workspace/ports/core-arm/glibc/work/src/build/sysd-rules:483: /workspace/ports/core-arm/glibc/work/src/build/string/ffs.o] Error 1
make[3]: *** Waiting for unfinished jobs....
../sysdeps/arm/armv6t2/ffsll.S: Assembler messages:
../sysdeps/arm/armv6t2/ffsll.S:44: Error: selected processor does not support `rbit r0,r0' in ARM mode
../sysdeps/arm/armv6t2/memchr.S: Assembler messages:
../sysdeps/arm/armv6t2/memchr.S:53: Error: cannot honor width suffix -- `and r1,r1,#0xff'
../sysdeps/arm/armv6t2/memchr.S:58: Error: cannot honor width suffix -- `tst r0,#7'
../sysdeps/arm/armv6t2/memchr.S:63: Error: cannot honor width suffix -- `ldrb r3,[r0],#1'
../sysdeps/arm/armv6t2/memchr.S:67: Error: cannot honor width suffix -- `tst r0,#7'
../sysdeps/arm/armv6t2/memchr.S:81: Error: cannot honor width suffix -- `orr r1,r1,r1,lsl#8'
../sysdeps/arm/armv6t2/memchr.S:82: Error: cannot honor width suffix -- `orr r1,r1,r1,lsl#16'
../sysdeps/arm/armv6t2/memchr.S:83: Error: cannot honor width suffix -- `bic r6,r2,#7'
../sysdeps/arm/armv6t2/memchr.S:84: Error: cannot honor width suffix -- `mvns r7,#0'
../sysdeps/arm/armv6t2/memchr.S:88: Error: selected processor does not support `ldrd r4,r5,[r0],#8' in Thumb mode
make[3]: *** [/workspace/ports/core-arm/glibc/work/src/build/sysd-rules:483: /workspace/ports/core-arm/glibc/work/src/build/string/ffsll.o] Error 1
../sysdeps/arm/armv6t2/memchr.S:90: Error: cannot honor width suffix -- `eor r4,r4,r1'
../sysdeps/arm/armv6t2/memchr.S:91: Error: cannot honor width suffix -- `eor r5,r5,r1'
../sysdeps/arm/armv6t2/memchr.S:92: Error: selected processor does not support `uadd8 r4,r4,r7' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:93: Error: selected processor does not support `sel r4,r3,r7' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:94: Error: selected processor does not support `uadd8 r5,r5,r7' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:95: Error: selected processor does not support `sel r5,r4,r7' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:96: Error: selected processor does not support `cbnz r5,60f' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:106: Error: cannot honor width suffix -- `and r1,r1,#0xff'
../sysdeps/arm/armv6t2/memchr.S:107: Error: cannot honor width suffix -- `and r2,r2,#7'
../sysdeps/arm/armv6t2/memchr.S:110: Error: selected processor does not support `cbz r2,40f' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:113: Error: cannot honor width suffix -- `ldrb r3,[r0],#1'
../sysdeps/arm/armv6t2/memchr.S:115: Error: cannot honor width suffix -- `eor r3,r3,r1'
../sysdeps/arm/armv6t2/memchr.S:116: Error: selected processor does not support `cbz r3,50f' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:132: Error: selected processor does not support `itte eq' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:133: Error: MOV Rd, Rs with two low registers is not permitted on this architecture -- `moveq r4,r5'
../sysdeps/arm/armv6t2/memchr.S:134: Error: lo register required -- `subeq r0,r0,#3'
../sysdeps/arm/armv6t2/memchr.S:135: Error: lo register required -- `subne r0,r0,#7'
../sysdeps/arm/armv6t2/memchr.S:138: Error: cannot honor width suffix -- `tst r4,#1<<(0*8)'
../sysdeps/arm/armv6t2/memchr.S:141: Error: cannot honor width suffix -- `tst r4,#1<<(1*8)'
../sysdeps/arm/armv6t2/memchr.S:142: Error: selected processor does not support `ittt eq' in Thumb mode
../sysdeps/arm/armv6t2/memchr.S:143: Error: lo register required -- `addeq r0,r0,#1'
../sysdeps/arm/armv6t2/memchr.S:144: Error: thumb conditional instruction should be in IT block -- `tsteq r4,#(3<<15)'
../sysdeps/arm/armv6t2/memchr.S:146: Error: lo register required -- `addeq r0,r0,#1'
make[3]: *** [/workspace/ports/core-arm/glibc/work/src/build/sysd-rules:483: /workspace/ports/core-arm/glibc/work/src/build/string/memchr.o] Error 1
make[3]: Leaving directory '/workspace/ports/core-arm/glibc/work/src/glibc-2.36/string'
make[2]: *** [Makefile:484: string/subdir_lib] Error 2
make[2]: Leaving directory '/workspace/ports/core-arm/glibc/work/src/glibc-2.36'
make[1]: *** [Makefile:9: all] Error 2
make[1]: Leaving directory '/workspace/ports/core-arm/glibc/work/src/build'
=======> ERROR: Building '/workspace/ports/core-arm/glibc/glibc#2.36-1.pkg.tar.xz' failed.
make: *** [Makefile:274: /workspace/packages.stage1.tar.xz] Error 1

This is happening on a odroidxu4 3.6 host.

I will try to reproduce the error using the generic rootfs.stage1.tar.xz as a base (the release) and if it does not reproduce we should consider to discard the use of rootfs.stage0.tar.xz as a base.

Restore prt-get.conf information after exiting chroot on stage1

We'll try to put the right information again on prt-get.conf file after exiting from chroot on stage1.
This way allow us to enter again stage1 without running again make prepare-prtgetconf which points to /workspace/ports instead of ports/

diff --git a/Makefile b/Makefile
index 315fb50..d065d91 100644
--- a/Makefile
+++ b/Makefile
@@ -317,6 +317,7 @@ stage1:
        @sudo umount -f $(ROOTFS_STAGE1_DIR)/proc
        @echo "[`date +'%F %T'`] Unmounting $(ROOTFS_STAGE1_DIR)/dev"
        @sudo umount -f $(ROOTFS_STAGE1_DIR)/dev
+       @sed "s|/workspace/||g" -i $(WORKSPACE_DIR)/prt-get.conf

 #------------------------------------------------------------------------------
 # BOOSTRAP

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.