Code Monkey home page Code Monkey logo

Comments (9)

sepen avatar sepen commented on May 30, 2024

I have reproduced the problem with rootfs.stage1.tar.xz (the release) as a base. It is failing at same point so it is not related to the use of rootfs.stage0.tar.xz as a base

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
../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
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
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: 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
../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.

from crux-arm-release.

sepen avatar sepen commented on May 30, 2024

Just as a curiosity, it has failed also when trying to create stage0 with optimizations for odroidxu4 when I ran DEVICE_OPTIMIZATION=odroidxu4 make bootstrap

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/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/string  -I/sdcard/home/sepen/devel/crux-arm/crux-arm-release/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/10.4.0/include -isystem /sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/pkg/usr/include -D_LIBC_REENTRANT -include /sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h  -DPIC     -DTOP_NAMESPACE=glibc -o /sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/string/memcmp.o -MD -MP -MF /sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/string/memcmp.o.dt -MT /sdcard/home/sepen/devel/crux-arm/crux-arm-release/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
../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
../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[5]: *** [/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/sysd-rules:483: /sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/string/ffs.o] Error 1
make[5]: *** 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
make[5]: *** [/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/sysd-rules:483: /sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/string/memchr.o] Error 1
make[5]: *** [/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/sysd-rules:483: /sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build/string/ffsll.o] Error 1
make[5]: Leaving directory '/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/glibc-2.36/string'
make[4]: *** [Makefile:484: string/subdir_lib] Error 2
make[4]: Leaving directory '/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/glibc-2.36'
make[3]: *** [Makefile:9: all] Error 2
make[3]: Leaving directory '/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/work/src/build'
=======> ERROR: Building '/sdcard/home/sepen/devel/crux-arm/crux-arm-release/ports/core-arm/glibc/glibc#2.36-1.pkg.tar.xz' failed```

I think the problem is related to CFLAGS provided by odroidxu4 optimization which appears incompatible with glibc for now.

from crux-arm-release.

sepen avatar sepen commented on May 30, 2024

The problem seems related to https://gcc.gnu.org/bugzilla//show_bug.cgi?id=83206

from crux-arm-release.

sepen avatar sepen commented on May 30, 2024

This is the failing section in glibc

#ifdef MEMCPY_NEON
--
 
.fpu	neon
.arch	armv7-a
# define FRAME_SIZE	4
# define USE_VFP
# define USE_NEON
 
#elif defined (MEMCPY_VFP)
 
.arch	armv6
.fpu	vfpv2
# define FRAME_SIZE	32
# define USE_VFP
 
#else
.arch	armv6
# define FRAME_SIZE    32
 
#endif

https://codebrowser.dev/glibc/glibc/sysdeps/arm/armv7/multiarch/memcpy_impl.S.html

from crux-arm-release.

sepen avatar sepen commented on May 30, 2024

This would also help this file https://codebrowser.dev/glibc/glibc/sysdeps/arm/sysdep.h.html


# elif defined (__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
         defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \
         defined(__ARM_ARCH_7EM__)
# define __ARM_ARCH 7

from crux-arm-release.

sepen avatar sepen commented on May 30, 2024

After trying different workarounds in Pkgifle and different CFLAGS the same error still appears.

It should be noted, that I am compiling glibc with the gcc version 10.4.0 (CRUX-ARM 3.6) that I have on my odroidxu4 host.

What I am going to try is to reinstall the odroidxu4 with release 3.7-rc4 and try with the gcc 12 that it has, since the error could be due to "a change in gcc when they reorder assembler architecture directives" https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101723

from crux-arm-release.

pitill0 avatar pitill0 commented on May 30, 2024

Tested "export ASFLAGS" build optimization for cubieboard and cubieboard2.

We will add the export on the overlay for all devices.

from crux-arm-release.

sepen avatar sepen commented on May 30, 2024

@pitill0 Do you think we can close this issue after adding ASFLAGS to glibc ports? +1 here

from crux-arm-release.

pitill0 avatar pitill0 commented on May 30, 2024

Yes. It seems to solve the optimización problem

from crux-arm-release.

Related Issues (20)

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.