Bug#215913: marked as done (gcc: arm: preprocessor spuriously adds line breaks when processing assembler code)
Your message dated Thu, 23 Oct 2003 21:19:30 +0200
with message-id <20031023191930.10478.qmail@h14f7d.mid.smarden.org>
and subject line Bug#215913: gcc: arm: preprocessor spuriously adds line breaks when processing assembler code
has caused the attached Bug report to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere. Please contact me immediately.)
Debian bug tracking system administrator
(administrator, Debian Bugs database)
--------------------------------------
Received: (at submit) by bugs.debian.org; 15 Oct 2003 12:40:19 +0000
>From pape-bounce-submit=bugs.debian.org@smarden.org Wed Oct 15 07:40:10 2003
Return-path: <pape-bounce-submit=bugs.debian.org@smarden.org>
Received: from dsl-217-199-70-55.berlikomm.net (nomad.mobile.innominate.org) [217.199.70.55]
by master.debian.org with smtp (Exim 3.35 1 (Debian))
id 1A9kwk-0006OP-00; Wed, 15 Oct 2003 07:40:10 -0500
Received: (qmail 9369 invoked by uid 507); 15 Oct 2003 12:38:23 -0000
Message-ID: <[🔎] 20031015123823.9368.qmail@h14f7d.mid.smarden.org>
Date: Wed, 15 Oct 2003 14:38:23 +0200
From: Gerrit Pape <pape@smarden.org>
To: submit@bugs.debian.org
Subject: gcc: arm: preprocessor spuriously adds line breaks when processing assembler code
Reply-To: pape-dbnbgs@smarden.org
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="u3/rZRmxL6MmkK24"
Content-Disposition: inline
User-Agent: Mutt/1.5.4i
Delivered-To: submit@bugs.debian.org
X-Spam-Status: No, hits=-5.0 required=4.0
tests=HAS_PACKAGE
version=2.53-bugs.debian.org_2003_10_13
X-Spam-Level:
X-Spam-Checker-Version: SpamAssassin 2.53-bugs.debian.org_2003_10_13 (1.174.2.15-2003-03-30-exp)
--u3/rZRmxL6MmkK24
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Package: gcc
Severity: important
Hi,
(sid)pape@debussy:~/dietlibc-0.23/arm$ gcc -v
Reading specs from /usr/lib/gcc-lib/arm-linux/3.3.2/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc arm-linux
Thread model: posix
gcc version 3.3.2 20031005 (Debian prerelease)
The dietlibc_0.23-1 fails to build on arm because of bad preprocessing
of assembler code. Here's the relevant part of the build log
http://buildd.debian.org/fetch.php?&pkg=dietlibc&ver=0.23-1&arch=arm&stamp=1063449359&file=log&as=raw
gcc -I. -Iinclude -pipe -nostdinc -Os -fomit-frame-pointer -fstrict-aliasing -mhard-float -Wall -W -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wredundant-decls -Wno-unused -c arm/clone.S -o bin-arm/clone.o
arm/clone.S: Assembler messages:
arm/clone.S:20: Error: bad instruction `syscall'
arm/clone.S:25: Error: bad instruction `syscall'
make[1]: *** [bin-arm/clone.o] Error 1
make[1]: Leaving directory `/build/buildd/dietlibc-0.23'
make: *** [build-stamp] Error 2
I attach the clone.S source file, and also the output 'gcc -E clone.S'.
The preprocessor adds linebreaks at the word 'syscall', even though it's
just a comment, see line 18 and line 24 in clone.S.
If there's something wrong with the arm/clone.S source file, please tell
me; in my opinion the preprocessor is at fault here.
Thanks, Gerrit.
--u3/rZRmxL6MmkK24
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="clone.S"
#include <errno.h>
#include "syscalls.h"
.text
.weak clone
.global __clone
@
@ Some slightly tricky stuff here... edit with care :-)
@
clone:
__clone:
movs r12, r0 @ check function pointer
cmpne r1, #0 @ if function check for stack pointer
moveq r0, #-EINVAL @ if one is not available set errno value
beq __unified_syscall @ handle as if error was returned by the syscall
stmdb r1!, { r3, r12 } @ store function param (r3) and function ptr (r12)
@ into what will become the childs stack.
mov r0, r2 @ move flags argument to r0
swi __NR_clone @ call the syscall
movs r0, r0 @ set condition codes
blt __unified_syscall @ (return code < 0): handle as an error
movne pc, lr @ (return code > 0): return to parent
mov fp, #0 @ clear the frame pointer
adr lr, 1f @ setup return address
ldmia sp!, { r0, pc } @ load function param and jump to thread function
1: b _exit @ branch to _exit (PIC safe)
--u3/rZRmxL6MmkK24
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="clone.S.preprocessed"
# 1 "clone.S"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "clone.S"
# 1 "/usr/include/errno.h" 1 3 4
# 29 "/usr/include/errno.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 318 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4
# 319 "/usr/include/features.h" 2 3 4
# 30 "/usr/include/errno.h" 2 3 4
__BEGIN_DECLS
# 1 "/usr/include/bits/errno.h" 1 3 4
# 25 "/usr/include/bits/errno.h" 3 4
# 1 "/usr/include/linux/errno.h" 1 3 4
# 1 "/usr/include/asm/errno.h" 1 3 4
# 5 "/usr/include/linux/errno.h" 2 3 4
# 26 "/usr/include/bits/errno.h" 2 3 4
# 37 "/usr/include/errno.h" 2 3 4
# 47 "/usr/include/errno.h" 3 4
extern int errno;
# 59 "/usr/include/errno.h" 3 4
__END_DECLS
# 3 "clone.S" 2
# 1 "syscalls.h" 1
# 474 "syscalls.h"
.macro __syscall_weak name wsym sym typ
.text
.type \wsym,function
.weak \wsym
\wsym:
.type \sym,function
.global \sym
\sym:
.ifgt \typ
mov ip, sp
stmfd sp!,{r4, r5, r6}
ldmia ip, {r4, r5, r6}
.endif
swi \name
.ifgt \typ
b __unified_syscall4
.else
b __unified_syscall
.endif
.endm
.macro __syscall name sym typ
.text
.type \sym,function
.global \sym
\sym:
.ifgt \typ
mov ip, sp
stmfd sp!,{r4, r5, r6}
ldmia ip, {r4, r5, r6}
.endif
swi \name
.ifgt \typ
b __unified_syscall4
.else
b __unified_syscall
.endif
.endm
# 4 "clone.S" 2
.text
.weak clone
.global __clone
@
@ Some slightly tricky stuff here... edit with care :-)
@
clone:
__clone:
movs r12, r0 @ check function pointer
cmpne r1, #0 @ if function check for stack pointer
moveq r0, #-22 @ if one is not available set errno value
beq __unified_syscall @ handle as if error was returned by the
syscall
# 20 "clone.S"
stmdb r1!, { r3, r12 } @ store function param (r3) and function ptr (r12)
@ into what will become the childs stack.
mov r0, r2 @ move flags argument to r0
swi (0x900000 +120) @ call the
syscall
# 25 "clone.S"
movs r0, r0 @ set condition codes
blt __unified_syscall @ (return code < 0): handle as an error
movne pc, lr @ (return code > 0): return to parent
mov fp, #0 @ clear the frame pointer
adr lr, 1f @ setup return address
ldmia sp!, { r0, pc } @ load function param and jump to thread function
1: b _exit @ branch to _exit (PIC safe)
--u3/rZRmxL6MmkK24--
---------------------------------------
Received: (at 215913-done) by bugs.debian.org; 23 Oct 2003 19:19:09 +0000
>From pape-bounce-215913-done=bugs.debian.org@smarden.org Thu Oct 23 14:19:03 2003
Return-path: <pape-bounce-215913-done=bugs.debian.org@smarden.org>
Received: from dsl-217-9-56-237.berlikomm.net (woph.mbl.smarden.org) [217.9.56.237]
by master.debian.org with smtp (Exim 3.35 1 (Debian))
id 1ACkz6-0003Z5-00; Thu, 23 Oct 2003 14:19:00 -0500
Received: (qmail 10480 invoked by uid 501); 23 Oct 2003 19:19:30 -0000
Message-ID: <20031023191930.10478.qmail@h14f7d.mid.smarden.org>
Date: Thu, 23 Oct 2003 21:19:30 +0200
From: Gerrit Pape <pape-dbnbgs@smarden.org>
To: 215913-done@bugs.debian.org
Subject: Re: Bug#215913: gcc: arm: preprocessor spuriously adds line breaks when processing assembler code
References: <[🔎] 20031015123823.9368.qmail@h14f7d.mid.smarden.org> <[🔎] 87zng2od9p.fsf@student.uni-tuebingen.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <[🔎] 87zng2od9p.fsf@student.uni-tuebingen.de>
User-Agent: Mutt/1.4.1i
Delivered-To: 215913-done@bugs.debian.org
X-Spam-Status: No, hits=-5.7 required=4.0
tests=EMAIL_ATTRIBUTION,QUOTED_EMAIL_TEXT
version=2.53-bugs.debian.org_2003_10_21
X-Spam-Level:
X-Spam-Checker-Version: SpamAssassin 2.53-bugs.debian.org_2003_10_21 (1.174.2.15-2003-03-30-exp)
On Wed, Oct 15, 2003 at 03:12:50PM +0200, Falk Hueffner wrote:
> Gerrit Pape <pape@smarden.org> writes:
> > The preprocessor adds linebreaks at the word 'syscall', even though
> > it's just a comment, see line 18 and line 24 in clone.S.
>
> This looks very similar to bug 210482, which should have been fixed.
Yes. After asking for a rebuild on the debian-arm list didn't work out,
I uploaded a new package. It auto-built fine now with gcc-3.3_1:3.3.2-1.
Thanks, Gerrit.
Reply to: