crux-arm / crux-arm-release Goto Github PK
View Code? Open in Web Editor NEWBuild CRUX-ARM releases for generic and optimized devices
License: GNU General Public License v3.0
Build CRUX-ARM releases for generic and optimized devices
License: GNU General Public License v3.0
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.
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
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"
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.
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.
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 |
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.
We have noticed that binutils aarch64 isn't specifying --build option.
On stage1, after updating libarchive to 3.6.2 and building libarchive with autotools, it adds iconv support if it's not specifically disabled.
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"
Binutils port isn't updated and synced with upstream version.
libgmp isn't specifiying --build configure option.
I have tested these steps to see if we can use a generic rootfs from stage0 ports to build optimizations
$ cp -av ~/Downloads/rootfs.stage0.tar.xz .
'~/Downloads/rootfs.stage0.tar.xz' -> './rootfs.stage0.tar.xz'
$ ln -s rootfs.stage0.tar.xz rootfs.tar.xz
$ ls devices
$ cat devices/odroidxu4.mk
$ 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.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.