compile error on moby with newly gcc 3.3.1

Jens Rehsack rehsack at liwing.de
Mon Jul 14 14:48:56 PDT 2003


Hi,

I tried to update a machine which will become a webserver in
near future. I received following error in buildkernel:

[...]

cc -c -O -pipe -march=pentium4 -Wall \
	-Wredundant-decls -Wnested-externs -Wstrict-prototypes \
	-Wmissing-prototypes -Wpointer-arith -Winline \
	-Wcast-qual-fformat-extensions -std=c99  -nostdinc \
	-I-  -I. -I/usr/src/sys -I/usr/src/sys/dev \
	-I/usr/src/sys/contrib/dev/acpica \
	-I/usr/src/sys/contrib/ipfilter \
	-I/usr/src/sys/contrib/dev/ath \
	-I/usr/src/sys/contrib/dev/ath/freebsd -D_KERNEL \
	-include opt_global.h -fno-common  \
	-mno-align-long-strings \
	-mpreferred-stack-boundary=2 -ffreestanding \
	/usr/src/sys/dev/ata/ata-all.c
{standard input}: Assembler messages:
{standard input}:7652: Error: invalid character '_' in mnemonic
*** Error code 1

Stop in /usr/obj/usr/src/sys/MOBY.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.

The lines around the location are:
ata_enclosure_status:
         pushl   %ebp
         movl    %esp, %ebp
         pushl   %edi
         pushl   %esi
         pushl   %ebx
         subl    $24, %esp
         movl    8(%ebp), %edi
         movl    $6, -16(%ebp)
         testb   $8, 20(%edi)
         ds ; je .L2817
         movl    (%edi), %eax
         movl    $1, 4(%esp)
         movl    %eax, (%esp)
         call    *248(%eax)
         movl    (%edi), %ecx
         movl    $0, %eax
         movl    $128, %edx
#APP
                 lock ;          cmpxchgl %edx,244(%ecx) ; 
setz     %al ;                   movzbl  %al,%eax ;      1:		# 
atomic_cmpset_int
#NO_APP
         testl   %eax, %eax
         jne     .L2830
         movl    $0, %esi
         movl    $128, %ebx
.L2822:

The line 7652 is the "#NO_APP". I must blame myself and say, that I 
don't know where #NO_APP stands for, so I don't have any idea where the 
error comes from nor how it could be fixed.

The error doesn't appear compiling the file using -march=pentium3, where 
the begin of "ata_enclosure_status" looks like:

ata_enclosure_status:
         pushl   %ebp
         movl    %esp, %ebp
         pushl   %edi
         pushl   %esi
         pushl   %ebx
         subl    $24, %esp
         movl    8(%ebp), %edi
         movl    $6, -16(%ebp)
         testb   $8, 20(%edi)
         je      .L2817
         movl    (%edi), %eax
         movl    $1, 4(%esp)
         movl    %eax, (%esp)
         call    *248(%eax)
         movl    (%edi), %ecx
         movl    $0, %eax
         movl    $128, %edx
#APP
                 lock ;          cmpxchgl %edx,244(%ecx) ; 
setz     %al ;                   movzbl  %al,%eax ;      1:		# 
atomic_cmpset_int
#NO_APP
         testl   %eax, %eax
         jne     .L2830
         movl    $0, %esi
         movl    $128, %ebx
         .p2align 4,,15
.L2822:

Does anyone know what's going on here?

Regards,
Jens



More information about the freebsd-current mailing list