tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: vax binutils 2.39 gas problems



Hmm. Unless I'm getting this wrong, the error comes from the assembly phase. So could you compare the .s files with and without those extra spaces for the last line of the _asm() ? But yeah, sounds like gas wants some whitespace after the last character to be happy. Newline or spaces, or at least something. (I'm sort of wondering if it somehow sucks in the next line, containing "# 0 "" 2" and that's where the complaints about the missing closing quote comes from.) Also, do you get the same result if you just run gas on the .s files directly?
 Johnny
On 2023年01月27日 16:02, Izumi Tsutsui wrote:
It looks vax builds fail in many sources that use __asm() statements
after switching vax to using new binutils 2.39.
Daily buildlog says:
 https://releng.netbsd.org/builds/HEAD/202301261240Z/vax.build.failed
dependall ===> lib/../external/gpl3/gcc/lib/libgcc/libgcov
/home/source/ab/HEAD/src/external/gpl3/gcc/dist/libgcc/libgcc2.c: Assembler messages:
/home/source/ab/HEAD/src/external/gpl3/gcc/dist/libgcc/libgcc2.c:553: Error: unknown pseudo-op: `.'
In src/sys/arch/vax/boot/boot (to commit my local fix) I got:
---
# compile sa/loadfile.o
/s/cvs/src/obj.vax/tooldir.NetBSD-9.3-i386/bin/vax--netbsdelf-gcc -O2 \
-ffreestanding -fno-pic -fno-unwind-tables -std=gnu99 -Wall \
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \
-Wno-sign-compare -Wsystem-headers -Wno-traditional \
 -Wa,--fatal-warnings -Werror \
 -I/s/cvs/src/sys/arch/vax/boot/boot/../../../../lib/libsa \
--sysroot=/s/cvs/src/obj.vax/destdir.vax -DSUPPORT_BOOTPARAMS \
-DSUPPORT_BOOTP -DSUPPORT_DHCP -D_STANDALONE -DNO_MID_CHECK \
-DLIBSA_CREAD_NOCRC -I/s/cvs/src/sys/arch/vax/boot/boot/../../../../lib/libkern/../../../common/lib/libc/quad \
-I/s/cvs/src/sys/arch/vax/boot/boot/../../../../lib/libkern/../../../common/lib/libc/string \
-I/s/cvs/src/sys/arch/vax/boot/boot/../../../../lib/libkern/../../../common/lib/libc/arch/vax/string \
-I/s/cvs/src/sys/arch/vax/boot/boot/../../../../lib/libkern/../../../common/lib/libc/arch/vax/atomic \
-I/s/cvs/src/sys/arch/vax/boot/boot/../../../../lib/libkern/../../../common/lib/libc/hash/sha3 \
-I../../. -I/s/cvs/src/sys/arch/vax/boot/boot/../../../../ \
-I/s/cvs/src/sys/arch/vax/boot/boot/../../ \
-I/s/cvs/src/sys/arch/vax/boot/boot/../common -I/s/cvs/src/sys/arch/vax/boot/boot/../../include \
-DRELOC=0x7d0000 -D_STANDALONE \
-I/s/cvs/src/sys/arch/vax/boot/boot/../../../../lib/libsa/../../../common/dist/zlib \
 -DCOMPAT_UFS -D__INTERNAL_LIBSA_CREAD -Wno-pointer-sign -c \
 /s/cvs/src/sys/arch/vax/boot/boot/../../../../lib/libsa/loadfile.c \
-o loadfile.o
loadfile.s: Assembler messages:
loadfile.s:99: Warning: missing closing `"'
loadfile.s:99: Fatal error: Ignoring statement due to "Unknown operator"
*** Failed target: loadfile.o
---
The asm file around line 99 in loadfile.S per -save_temps:
---
 87 .L8:
 88 	pushab .LC2
 89 	calls 1,ドル(%r6)
 90 	movzbl 79,ドルerrno
 91 	movzbl 79,ドル%r0
 92 	ret
 93 .L34:
 94 #APP
 95 # 47 "../.././machine/byte_swap.h" 1
 96 	rotl	$-8, %r0, %r2	
 97 insv	%r2, 16,ドル 8,ドル %r2	
 98 rotl	8,ドル %r0, %r1	
 99 movb	%r1, %r2
100 # 0 "" 2
101 #NO_APP
102 	cmpw %r2,263ドル
103 	jeql .L12
104 #APP
105 # 47 "../.././machine/byte_swap.h" 1
106 	rotl	$-8, %r0, %r2	
107 insv	%r2, 16,ドル 8,ドル %r2	
108 rotl	8,ドル %r0, %r1	
109 movb	%r1, %r2
110 # 0 "" 2
111 #NO_APP
---
So it's come from inline asm in byte_swap.h:
---
static __inline uint32_t __attribute__((__unused__))
__byte_swap_u32_variable(uint32_t x)
{
	uint32_t y;
	__asm volatile(
		"rotl $-8, %1, %0 \n"
		"insv %0, 16,ドル 8,ドル %0 \n"
		"rotl 8,ドル %1, %%r1 \n"
		"movb %%r1, %0"
		: "=&r" (y)
		: "r" (x)
		: "r1", "cc");
	return (y);
}
---
If I changed the following line in the inline function
		"movb %%r1, %0"
to
		"movb %%r1, %0 "
gas no longer complained it, so it smells corrupted buffer.
I have checked several changes in binutils/dist/gas/config/tc-vax.c
but I cannot find an obvious one.
Any ideas?
---
Izumi Tsutsui
--
Johnny Billquist || "I'm on a bus
 || on a psychedelic trip
email: bqt%softjar.se@localhost || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol


Home | Main Index | Thread Index | Old Index

AltStyle によって変換されたページ (->オリジナル) /