Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 647751

Summary: Error: junk at end of line, first unrecognized character is `@' on ppc64
Product: Red Hat Enterprise Linux 6 Reporter: Jan Horak <jhorak>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED WORKSFORME QA Contact: qe-baseos-tools-bugs
Severity: urgent Docs Contact:
Priority: low    
Version: 6.0CC: tpelka
Target Milestone: rc   
Target Release: ---   
Hardware: ppc64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-02 07:45:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
reproducer: xptcstubs_ppc64_linux_postrp.cpp
none
assembler file generated by gcc -S
none
xptcinvoke_asm_ppc64_linux.s none

Description Jan Horak 2010-10-29 10:31:02 UTC
Created attachment 456430 [details]
reproducer: xptcstubs_ppc64_linux_postrp.cpp

Description of problem:
Xulrunner TPS test fail on ppc64 due to many: Error: junk at end of line, first unrecognized character is `@'


Version-Release number of selected component:
gcc-4.4.4-13.el6.ppc64
binutils-2.20.51.0.2-5.11.el6.ppc64
xulrunner-1.9.2.12

How reproducible:


Steps to Reproduce:
compile xptcstubs_ppc64_linux_postpr.cpp by:
c++ -o xptcstubs_ppc64_linux_done.o -c -fvisibility=hidden -DMOZILLA_INTERNAL_API -DOSTYPE=\"Linux2.6.32-71.el6\" -DOSARCH=Linux -DEXPORT_XPTC_API -D_IMPL_NS_COM -fPIC -fno-rtti -fno-exceptions -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fno-strict-aliasing -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fno-reorder-functions -DMOZILLA_CLIENT -Wp,-MD,.deps/xptcstubs_ppc64_linux.pp xptcstubs_ppc64_linux_postrp.cpp 

 
Actual results:
{standard input}: Assembler messages:
{standard input}:25: Error: junk at end of line, first unrecognized character is `@'
{standard input}:64: Error: junk at end of line, first unrecognized character is `@'
{standard input}:103: Error: junk at end of line, first unrecognized character is `@'
{standard input}:142: Error: junk at end of line, first unrecognized character is `@'
{standard input}:181: Error: junk at end of line, first unrecognized character is `@'

Additional info:
Can be reproduce at stable machine: ppcp-6s-m1.ss.eng.bos.redhat.com

Comment 1 Jan Horak 2010-10-29 10:32:19 UTC
Created attachment 456431 [details]
assembler file generated by gcc -S

Comment 3 Tomas Pelka 2010-10-29 14:37:48 UTC
I met similar problem also on x86_64 when compiling i686 packages (same as in #0, ergo xulrunner):

ptcinvoke_x86_64_unix.cpp: In function 'nsresult NS_InvokeByIndex_P(nsISupports*, PRUint32, PRUint32, nsXPTCVariant*)':
xptcinvoke_x86_64_unix.cpp:152: error: invalid register name for 'd0'
xptcinvoke_x86_64_unix.cpp:153: error: invalid register name for 'd1' xptcinvoke_x86_64_unix.cpp:154: error: invalid register name for 'd2'
xptcinvoke_x86_64_unix.cpp:155: error: invalid register name for 'd3' 
xptcinvoke_x86_64_unix.cpp:156: error: invalid register name for 'd4' 
xptcinvoke_x86_64_unix.cpp:157: error: invalid register name for 'd5' 
xptcinvoke_x86_64_unix.cpp:158: error: invalid register name for 'd6' 
xptcinvoke_x86_64_unix.cpp:159: error: invalid register name for 'd7' 
xptcinvoke_x86_64_unix.cpp:181: error: invalid register name for 'a4' 
xptcinvoke_x86_64_unix.cpp:182: error: invalid register name for 'a5' make[9]: 
*** [xptcinvoke_x86_64_unix.o] Error 1 make[9]: *** 
Waiting for unfinished jobs.... 
{standard input}: Assembler messages: 
{standard input}:15: Error: bad register name `%rbp' 
{standard input}:16: Error: bad register name `%rsp' 
{standard input}:17: Error: bad register name `%rsp' 
{standard input}:18: Error: bad register name `%rdi' 
{standard input}:19: Error: bad register name `%rsi' 
{standard input}:20: Error: bad register name `%rdx' 
{standard input}:21: Error: bad register name `%rcx' 
{standard input}:22: Error: bad register name `%r8' 
{standard input}:23: Error: bad register name `%r9' 
{standard input}:24: Error: bad register name `%rbp)' 
{standard input}:25: Error: bad register name `%rbp)' 
{standard input}:26: Error: bad register name `%rbp)' 
{standard input}:27: Error: bad register name `%rbp)' 
{standard input}:28: Error: bad register name `%rbp)' 
{standard input}:29: Error: bad register name `%rbp)' 
{standard input}:30: Error: bad register name `%rbp)' 
{standard input}:31: Error: bad register name `%rbp)' 
{standard input}:32: Error: bad register name `%rbp)' 
{standard input}:33: Error: bad register name `%rbp)' 
{standard input}:35: Error: bad register name `%rbp)' make[9]: *** [xptcstubs_x86_64_linux.o] Error 1

Comment 4 Tomas Pelka 2010-10-29 14:40:25 UTC
And also on s390x (also compiling s390 packages on s390x -- xulrunner), but here I'm not fully sure if it is same kind off failure:

xptcinvoke_linux_s390x.cpp: In function 'nsresult NS_InvokeByIndex_P(nsISupports*, PRUint32, PRUint32, nsXPTCVariant*)': 
xptcinvoke_linux_s390x.cpp:248: error: can't find a register in class 'ADDR_REGS' while reloading 'asm' 
xptcinvoke_linux_s390x.cpp:248: error: 'asm' operand has impossible constraints 
make[9]: *** [xptcinvoke_linux_s390x.o] Error 1

Comment 5 Jakub Jelinek 2010-11-01 09:00:57 UTC
Looks like user error.
You are compiling on ppc64 with -m32 code that is partly for 32-bit ppc (e.g. size_t definition etc. is clearly for 32-bit code), but partly for 64-bit ppc
(e.g. the inline asm in dist/include/xptcstubsdef.inc are clearly 64-bit ppc assembly rather than 32-bit).

Comment 6 Tomas Pelka 2010-11-01 13:39:30 UTC
OK setarch works for ppc packages on ppc64, also for s390 packages on s390x and also for i686 packages on x86_64.

But still getting similar error ("junk at end of line, ...") on ppc64 when building ppc64 package. See logs.  

http://nest.test.redhat.com/mnt/qa/scratch/ppcp-6s-m1/2010:10114/tps/stdout.log
http://nest.test.redhat.com/mnt/qa/scratch/ppcp-6s-m1/2010:10114/tps/err.log

Comment 7 Jakub Jelinek 2010-11-01 13:46:52 UTC
Please attach xptcinvoke_asm_ppc64_linux.ii and xptcinvoke_asm_ppc64_linux.s
I'll have a look.

Comment 8 Tomas Pelka 2010-11-01 14:10:54 UTC
Created attachment 456874 [details]
xptcinvoke_asm_ppc64_linux.s

Comment 9 Tomas Pelka 2010-11-01 14:14:22 UTC
Sorry cant find xptcinvoke_asm_ppc64_linux.ii.

Comment 10 Jakub Jelinek 2010-11-01 14:21:53 UTC
The .ii file would be produced by -save-temps (or -E).
Anyway, the attached xptcinvoke_asm_ppc64_linux.s assembles just fine for me on RHEL6/ ppc32.

Comment 11 Tomas Pelka 2010-11-01 14:47:23 UTC
(In reply to comment #10)
> The .ii file would be produced by -save-temps (or -E).
> Anyway, the attached xptcinvoke_asm_ppc64_linux.s assembles just fine for me on
> RHEL6/ ppc32.

It appears when building ppc64 on ppc64, not ppc on ppc64 just like i said in #c6.

Comment 12 Jakub Jelinek 2010-11-01 15:10:08 UTC
But that's exactly what I'm doing too:
$ rpm -q gcc-c++ gcc binutils; which gcc; gcc -c -x assembler-with-cpp -o \
xptcinvoke_asm_ppc64_linux.o -fPIC -c xptcinvoke_asm_ppc64_linux.s; echo $?
gcc-c++-4.4.4-13.el6.ppc64
gcc-4.4.4-13.el6.ppc64
binutils-2.20.51.0.2-5.11.el6.ppc64
/usr/bin/gcc
0
$

Comment 13 Tomas Pelka 2010-11-01 16:17:11 UTC
Seems that yum reinstall gcc\* helped.

Comment 14 Tomas Pelka 2010-11-02 07:45:17 UTC
Really, reinstalling gcc helped, closing as WORKSFORME.