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 - Error: junk at end of line, first unrecognized character is `@' on ppc64
Summary: Error: junk at end of line, first unrecognized character is `@' on ppc64
Keywords:
Status: CLOSED WORKSFORME
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: gcc
Version: 6.0
Hardware: ppc64
OS: Linux
low
urgent
Target Milestone: rc
: ---
Assignee: Jakub Jelinek
QA Contact: qe-baseos-tools-bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-10-29 10:31 UTC by Jan Horak
Modified: 2011-05-13 12:34 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-11-02 07:45:17 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
reproducer: xptcstubs_ppc64_linux_postrp.cpp (801.77 KB, text/x-c++src)
2010-10-29 10:31 UTC, Jan Horak
no flags Details
assembler file generated by gcc -S (251.51 KB, application/octet-stream)
2010-10-29 10:32 UTC, Jan Horak
no flags Details
xptcinvoke_asm_ppc64_linux.s (6.32 KB, text/plain)
2010-11-01 14:10 UTC, Tomas Pelka
no flags Details

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.


Note You need to log in before you can comment on or make changes to this bug.