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: | gcc | Assignee: | Jakub Jelinek <jakub> | ||||||||
| Status: | CLOSED WORKSFORME | QA Contact: | qe-baseos-tools-bugs | ||||||||
| Severity: | urgent | Docs Contact: | |||||||||
| Priority: | low | ||||||||||
| Version: | 6.0 | CC: | 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: |
|
||||||||||
Created attachment 456431 [details]
assembler file generated by gcc -S
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
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 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). 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
Please attach xptcinvoke_asm_ppc64_linux.ii and xptcinvoke_asm_ppc64_linux.s I'll have a look. Created attachment 456874 [details]
xptcinvoke_asm_ppc64_linux.s
Sorry cant find xptcinvoke_asm_ppc64_linux.ii. 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. (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. 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 $ Seems that yum reinstall gcc\* helped. Really, reinstalling gcc helped, closing as WORKSFORME. |
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