rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
96.87k stars 12.52k forks source link

powerpc-unknown-linux-gnuspe illegal instruction #96394

Closed skydig closed 2 years ago

skydig commented 2 years ago

@alexcrichton I use following command to build std for powerpc gnuspe,

cargo build -Z build-std --target=powerpc-unknown-linux-gnuspe

and run under target, crash is as following,

Program received signal SIGILL, Illegal instruction. 0x204f2610 in core::sync::atomic::atomic_compare_exchange::hdd78233f59efc1d2 () at /usr/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:2643 2643 /usr/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs: No such file or directory. in /usr/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs (gdb) quit

please help

thanks

bjorn3 commented 2 years ago

What cpu are you trying to run it on? I suspect your cpu doesn't support an atomic instruction LLVM emits.

skydig commented 2 years ago

@bjorn3 its P1010 how to disable atomic support?

bjorn3 commented 2 years ago

It seems to be running an e500 cpu core produced by nxp which according to the reference manual supports atonic instructions. Could you use the disassemble command in gdb to show the exact crashing instruction? As for disabling atomic usage you need to change the target spec or provide a custom one in json format. Also note that any library that depends on atomics will not compile in that case. We don't emulate them using a lock if they are unavailable.

skydig commented 2 years ago

@bjorn3 thanks, i paste assemble code, this line => 0x2060d610 <+892>: lwsync make system crash

Program received signal SIGILL, Illegal instruction. 0x2060d610 in core::sync::atomic::atomic_compare_exchange::hdd78233f59efc1d2 () at /usr/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:2643 2643 in /usr/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs (gdb) disassemble Dump of assembler code for function _ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E: 0x2060d294 <+0>: mflr r0 0x2060d298 <+4>: stw r0,4(r1) 0x2060d29c <+8>: stwu r1,-208(r1) 0x2060d2a0 <+12>: stw r30,200(r1) 0x2060d2a4 <+16>: stw r5,64(r1) 0x2060d2a8 <+20>: stw r4,68(r1) 0x2060d2ac <+24>: stw r3,72(r1) 0x2060d2b0 <+28>: bl 0x2060d2b4 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+32> 0x2060d2b4 <+32>: mflr r30 0x2060d2b8 <+36>: lwz r8,-36(r30) 0x2060d2bc <+40>: add r30,r8,r30 0x2060d2c0 <+44>: stw r3,176(r1) 0x2060d2c4 <+48>: stw r4,180(r1) 0x2060d2c8 <+52>: stw r5,184(r1) 0x2060d2cc <+56>: stb r6,190(r1) 0x2060d2d0 <+60>: stb r7,191(r1) 0x2060d2d4 <+64>: stb r6,96(r1) 0x2060d2d8 <+68>: stb r7,97(r1) 0x2060d2dc <+72>: lbz r3,96(r1) 0x2060d2e0 <+76>: stw r3,76(r1) ---Type to continue, or q to quit--- 0x2060d2e4 <+80>: lwz r3,76(r1) 0x2060d2e8 <+84>: rlwinm r3,r3,2,0,29 0x2060d2ec <+88>: lwz r4,-32600(r30) 0x2060d2f0 <+92>: lwzx r3,r3,r4 0x2060d2f4 <+96>: add r3,r3,r4 0x2060d2f8 <+100>: mtctr r3 0x2060d2fc <+104>: bctr 0x2060d300 <+108>: lbz r3,97(r1) 0x2060d304 <+112>: cmplwi r3,0 0x2060d308 <+116>: beq 0x2060d6d8 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1092> 0x2060d30c <+120>: b 0x2060d39c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+264> 0x2060d310 <+124>: lbz r3,97(r1) 0x2060d314 <+128>: cmplwi r3,0 0x2060d318 <+132>: beq 0x2060d67c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1000> 0x2060d31c <+136>: b 0x2060d39c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+264> 0x2060d320 <+140>: lbz r3,97(r1) 0x2060d324 <+144>: stw r3,60(r1) 0x2060d328 <+148>: cmplwi r3,0 0x2060d32c <+152>: beq 0x2060d5c4 <_ZN4core4sync6atomic23atomic_compare---Type to continue, or q to quit--- _exchange17hdd78233f59efc1d2E+816> 0x2060d330 <+156>: b 0x2060d334 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+160> 0x2060d334 <+160>: lwz r3,60(r1) 0x2060d338 <+164>: cmplwi r3,2 0x2060d33c <+168>: beq 0x2060d620 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+908> 0x2060d340 <+172>: b 0x2060d39c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+264> 0x2060d344 <+176>: lbz r3,97(r1) 0x2060d348 <+180>: stw r3,56(r1) 0x2060d34c <+184>: cmplwi r3,0 0x2060d350 <+188>: beq 0x2060d504 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+624> 0x2060d354 <+192>: b 0x2060d358 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+196> 0x2060d358 <+196>: lwz r3,56(r1) 0x2060d35c <+200>: cmplwi r3,2 0x2060d360 <+204>: beq 0x2060d564 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+720> 0x2060d364 <+208>: b 0x2060d39c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+264> 0x2060d368 <+212>: lbz r3,97(r1) ---Type to continue, or q to quit--- 0x2060d36c <+216>: stw r3,52(r1) 0x2060d370 <+220>: cmplwi r3,0 0x2060d374 <+224>: beq 0x2060d3c0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+300> 0x2060d378 <+228>: b 0x2060d37c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+232> 0x2060d37c <+232>: lwz r3,52(r1) 0x2060d380 <+236>: cmplwi r3,2 0x2060d384 <+240>: beq 0x2060d420 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+396> 0x2060d388 <+244>: b 0x2060d38c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+248> 0x2060d38c <+248>: lwz r3,52(r1) 0x2060d390 <+252>: cmplwi r3,4 0x2060d394 <+256>: beq 0x2060d480 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+492> 0x2060d398 <+260>: b 0x2060d39c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+264> 0x2060d39c <+264>: lbz r3,97(r1) 0x2060d3a0 <+268>: stw r3,48(r1) 0x2060d3a4 <+272>: cmplwi r3,1 0x2060d3a8 <+276>: beq 0x2060d74c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1208> ---Type to continue, or q to quit--- 0x2060d3ac <+280>: b 0x2060d3b0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+284> 0x2060d3b0 <+284>: lwz r3,48(r1) 0x2060d3b4 <+288>: cmplwi r3,3 0x2060d3b8 <+292>: beq 0x2060d768 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1236> 0x2060d3bc <+296>: b 0x2060d730 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1180> 0x2060d3c0 <+300>: sync
0x2060d3c4 <+304>: lwz r3,68(r1) 0x2060d3c8 <+308>: lwz r4,72(r1) 0x2060d3cc <+312>: lwarx r4,0,r4 0x2060d3d0 <+316>: stw r4,44(r1) 0x2060d3d4 <+320>: cmpw r3,r4 0x2060d3d8 <+324>: bne 0x2060d3f0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+348> 0x2060d3dc <+328>: lwz r3,64(r1) 0x2060d3e0 <+332>: lwz r4,72(r1) 0x2060d3e4 <+336>: stwcx. r3,0,r4 0x2060d3e8 <+340>: bne 0x2060d3c4 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+304> 0x2060d3ec <+344>: b 0x2060d3fc <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+360> ---Type to continue, or q to quit--- 0x2060d3f0 <+348>: lwz r3,44(r1) 0x2060d3f4 <+352>: lwz r4,72(r1) 0x2060d3f8 <+356>: stwcx. r3,0,r4 0x2060d3fc <+360>: lwz r4,44(r1) 0x2060d400 <+364>: lwz r3,68(r1) 0x2060d404 <+368>: xor r3,r4,r3 0x2060d408 <+372>: cntlzw r3,r3 0x2060d40c <+376>: rlwinm r3,r3,27,5,31 0x2060d410 <+380>: lwsync 0x2060d414 <+384>: stw r4,88(r1) 0x2060d418 <+388>: stb r3,92(r1) 0x2060d41c <+392>: b 0x2060d4e0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+588> 0x2060d420 <+396>: sync
0x2060d424 <+400>: lwz r3,68(r1) 0x2060d428 <+404>: lwz r4,72(r1) 0x2060d42c <+408>: lwarx r4,0,r4 0x2060d430 <+412>: stw r4,40(r1) 0x2060d434 <+416>: cmpw r3,r4 0x2060d438 <+420>: bne 0x2060d450 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+444> 0x2060d43c <+424>: lwz r3,64(r1) 0x2060d440 <+428>: lwz r4,72(r1) ---Type to continue, or q to quit--- 0x2060d444 <+432>: stwcx. r3,0,r4 0x2060d448 <+436>: bne 0x2060d424 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+400> 0x2060d44c <+440>: b 0x2060d45c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+456> 0x2060d450 <+444>: lwz r3,40(r1) 0x2060d454 <+448>: lwz r4,72(r1) 0x2060d458 <+452>: stwcx. r3,0,r4 0x2060d45c <+456>: lwz r4,40(r1) 0x2060d460 <+460>: lwz r3,68(r1) 0x2060d464 <+464>: xor r3,r4,r3 0x2060d468 <+468>: cntlzw r3,r3 0x2060d46c <+472>: rlwinm r3,r3,27,5,31 0x2060d470 <+476>: lwsync 0x2060d474 <+480>: stw r4,88(r1) 0x2060d478 <+484>: stb r3,92(r1) 0x2060d47c <+488>: b 0x2060d4e0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+588> 0x2060d480 <+492>: sync
0x2060d484 <+496>: lwz r3,68(r1) 0x2060d488 <+500>: lwz r4,72(r1) 0x2060d48c <+504>: lwarx r4,0,r4 0x2060d490 <+508>: stw r4,36(r1) ---Type to continue, or q to quit--- 0x2060d494 <+512>: cmpw r3,r4 0x2060d498 <+516>: bne 0x2060d4b0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+540> 0x2060d49c <+520>: lwz r3,64(r1) 0x2060d4a0 <+524>: lwz r4,72(r1) 0x2060d4a4 <+528>: stwcx. r3,0,r4 0x2060d4a8 <+532>: bne 0x2060d484 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+496> 0x2060d4ac <+536>: b 0x2060d4bc <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+552> 0x2060d4b0 <+540>: lwz r3,36(r1) 0x2060d4b4 <+544>: lwz r4,72(r1) 0x2060d4b8 <+548>: stwcx. r3,0,r4 0x2060d4bc <+552>: lwz r4,36(r1) 0x2060d4c0 <+556>: lwz r3,68(r1) 0x2060d4c4 <+560>: xor r3,r4,r3 0x2060d4c8 <+564>: cntlzw r3,r3 0x2060d4cc <+568>: rlwinm r3,r3,27,5,31 0x2060d4d0 <+572>: lwsync 0x2060d4d4 <+576>: stw r4,88(r1) 0x2060d4d8 <+580>: stb r3,92(r1) 0x2060d4dc <+584>: b 0x2060d4e0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+588> ---Type to continue, or q to quit--- 0x2060d4e0 <+588>: lwz r3,88(r1) 0x2060d4e4 <+592>: stw r3,32(r1) 0x2060d4e8 <+596>: stw r3,192(r1) 0x2060d4ec <+600>: lbz r4,92(r1) 0x2060d4f0 <+604>: clrlwi r3,r4,31 0x2060d4f4 <+608>: stb r4,199(r1) 0x2060d4f8 <+612>: cmplwi r3,0 0x2060d4fc <+616>: bne 0x2060d7c8 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1332> 0x2060d500 <+620>: b 0x2060d7b4 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1312> 0x2060d504 <+624>: lwsync 0x2060d508 <+628>: lwz r3,68(r1) 0x2060d50c <+632>: lwz r4,72(r1) 0x2060d510 <+636>: lwarx r4,0,r4 0x2060d514 <+640>: stw r4,28(r1) 0x2060d518 <+644>: cmpw r3,r4 0x2060d51c <+648>: bne 0x2060d534 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+672> 0x2060d520 <+652>: lwz r3,64(r1) 0x2060d524 <+656>: lwz r4,72(r1) 0x2060d528 <+660>: stwcx. r3,0,r4 0x2060d52c <+664>: bne 0x2060d508 <_ZN4core4sync6atomic23atomic_compare---Type to continue, or q to quit--- _exchange17hdd78233f59efc1d2E+628> 0x2060d530 <+668>: b 0x2060d540 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+684> 0x2060d534 <+672>: lwz r3,28(r1) 0x2060d538 <+676>: lwz r4,72(r1) 0x2060d53c <+680>: stwcx. r3,0,r4 0x2060d540 <+684>: lwz r4,28(r1) 0x2060d544 <+688>: lwz r3,68(r1) 0x2060d548 <+692>: xor r3,r4,r3 0x2060d54c <+696>: cntlzw r3,r3 0x2060d550 <+700>: rlwinm r3,r3,27,5,31 0x2060d554 <+704>: lwsync 0x2060d558 <+708>: stw r4,88(r1) 0x2060d55c <+712>: stb r3,92(r1) 0x2060d560 <+716>: b 0x2060d4e0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+588> 0x2060d564 <+720>: lwsync 0x2060d568 <+724>: lwz r3,68(r1) 0x2060d56c <+728>: lwz r4,72(r1) 0x2060d570 <+732>: lwarx r4,0,r4 0x2060d574 <+736>: stw r4,24(r1) 0x2060d578 <+740>: cmpw r3,r4 0x2060d57c <+744>: bne 0x2060d594 <_ZN4core4sync6atomic23atomic_compare---Type to continue, or q to quit--- _exchange17hdd78233f59efc1d2E+768> 0x2060d580 <+748>: lwz r3,64(r1) 0x2060d584 <+752>: lwz r4,72(r1) 0x2060d588 <+756>: stwcx. r3,0,r4 0x2060d58c <+760>: bne 0x2060d568 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+724> 0x2060d590 <+764>: b 0x2060d5a0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+780> 0x2060d594 <+768>: lwz r3,24(r1) 0x2060d598 <+772>: lwz r4,72(r1) 0x2060d59c <+776>: stwcx. r3,0,r4 0x2060d5a0 <+780>: lwz r4,24(r1) 0x2060d5a4 <+784>: lwz r3,68(r1) 0x2060d5a8 <+788>: xor r3,r4,r3 0x2060d5ac <+792>: cntlzw r3,r3 0x2060d5b0 <+796>: rlwinm r3,r3,27,5,31 0x2060d5b4 <+800>: lwsync 0x2060d5b8 <+804>: stw r4,88(r1) 0x2060d5bc <+808>: stb r3,92(r1) 0x2060d5c0 <+812>: b 0x2060d4e0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+588> 0x2060d5c4 <+816>: lwz r3,68(r1) 0x2060d5c8 <+820>: lwz r4,72(r1) ---Type to continue, or q to quit--- 0x2060d5cc <+824>: lwarx r4,0,r4 0x2060d5d0 <+828>: stw r4,20(r1) 0x2060d5d4 <+832>: cmpw r3,r4 0x2060d5d8 <+836>: bne 0x2060d5f0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+860> 0x2060d5dc <+840>: lwz r3,64(r1) 0x2060d5e0 <+844>: lwz r4,72(r1) 0x2060d5e4 <+848>: stwcx. r3,0,r4 0x2060d5e8 <+852>: bne 0x2060d5c4 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+816> 0x2060d5ec <+856>: b 0x2060d5fc <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+872> 0x2060d5f0 <+860>: lwz r3,20(r1) 0x2060d5f4 <+864>: lwz r4,72(r1) 0x2060d5f8 <+868>: stwcx. r3,0,r4 0x2060d5fc <+872>: lwz r4,20(r1) 0x2060d600 <+876>: lwz r3,68(r1) 0x2060d604 <+880>: xor r3,r4,r3 0x2060d608 <+884>: cntlzw r3,r3 0x2060d60c <+888>: rlwinm r3,r3,27,5,31 => 0x2060d610 <+892>: lwsync 0x2060d614 <+896>: stw r4,88(r1) 0x2060d618 <+900>: stb r3,92(r1) ---Type to continue, or q to quit--- 0x2060d61c <+904>: b 0x2060d4e0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+588> 0x2060d620 <+908>: lwz r3,68(r1) 0x2060d624 <+912>: lwz r4,72(r1) 0x2060d628 <+916>: lwarx r4,0,r4 0x2060d62c <+920>: stw r4,16(r1) 0x2060d630 <+924>: cmpw r3,r4 0x2060d634 <+928>: bne 0x2060d64c <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+952> 0x2060d638 <+932>: lwz r3,64(r1) 0x2060d63c <+936>: lwz r4,72(r1) 0x2060d640 <+940>: stwcx. r3,0,r4 0x2060d644 <+944>: bne 0x2060d620 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+908> 0x2060d648 <+948>: b 0x2060d658 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+964> 0x2060d64c <+952>: lwz r3,16(r1) 0x2060d650 <+956>: lwz r4,72(r1) 0x2060d654 <+960>: stwcx. r3,0,r4 0x2060d658 <+964>: lwz r4,16(r1) 0x2060d65c <+968>: lwz r3,68(r1) 0x2060d660 <+972>: xor r3,r4,r3 0x2060d664 <+976>: cntlzw r3,r3 ---Type to continue, or q to quit--- 0x2060d668 <+980>: rlwinm r3,r3,27,5,31 0x2060d66c <+984>: lwsync 0x2060d670 <+988>: stw r4,88(r1) 0x2060d674 <+992>: stb r3,92(r1) 0x2060d678 <+996>: b 0x2060d4e0 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+588> 0x2060d67c <+1000>: lwsync 0x2060d680 <+1004>: lwz r3,68(r1) 0x2060d684 <+1008>: lwz r4,72(r1) 0x2060d688 <+1012>: lwarx r4,0,r4 0x2060d68c <+1016>: stw r4,12(r1) 0x2060d690 <+1020>: cmpw r3,r4 0x2060d694 <+1024>: bne 0x2060d6ac <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1048> 0x2060d698 <+1028>: lwz r3,64(r1) 0x2060d69c <+1032>: lwz r4,72(r1) 0x2060d6a0 <+1036>: stwcx. r3,0,r4 0x2060d6a4 <+1040>: bne 0x2060d680 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1004> 0x2060d6a8 <+1044>: b 0x2060d6b8 <_ZN4core4sync6atomic23atomic_compare_exchange17hdd78233f59efc1d2E+1060> 0x2060d6ac <+1048>: lwz r3,12(r1) 0x2060d6b0 <+1052>: lwz r4,72(r1)

bjorn3 commented 2 years ago

Looks like the e500 cpu doesn't support lwsync and needs the sync instruction instead. Does it work if you use RUSTFLAGS="-Ctarget-cpu=e500? According to https://reviews.llvm.org/D76614 that should cause LLVM to use sync instead of lwsync.

mortenlj commented 2 years ago

I have a similar problem (or maybe the same?), but the disassembly seems to differ (I haven't used gdb much, so I'm not entirely sure I understand how to read it). I'm on a Synology DS213+ NAS with a FREESCALE QorIQ P1022 CPU (ppc e500 variant iirc).

gdb output ``` Starting program: /volume1/incomming/mqtt2file warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available. Program received signal SIGILL, Illegal instruction. 0x206fa57c in core::sync::atomic::atomic_compare_exchange (dst=0x208b9484 , old=0, new=1, success=core::sync::atomic::Ordering::Acquire, failure=core::sync::atomic::Ordering::Relaxed) at /home/mortenlj/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:2643 2643 /home/mortenlj/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs: No such file or directory. (gdb) disassemble Dump of assembler code for function core::sync::atomic::atomic_compare_exchange: 0x206fa200 <+0>: mflr r0 0x206fa204 <+4>: stw r0,4(r1) 0x206fa208 <+8>: stwu r1,-208(r1) 0x206fa20c <+12>: stw r30,200(r1) 0x206fa210 <+16>: stw r5,64(r1) 0x206fa214 <+20>: stw r4,68(r1) 0x206fa218 <+24>: stw r3,72(r1) 0x206fa21c <+28>: bl 0x206fa220 0x206fa220 <+32>: mflr r30 0x206fa224 <+36>: lwz r8,-36(r30) 0x206fa228 <+40>: add r30,r8,r30 0x206fa22c <+44>: stw r3,176(r1) 0x206fa230 <+48>: stw r4,180(r1) 0x206fa234 <+52>: stw r5,184(r1) 0x206fa238 <+56>: stb r6,190(r1) 0x206fa23c <+60>: stb r7,191(r1) 0x206fa240 <+64>: stb r6,96(r1) 0x206fa244 <+68>: stb r7,97(r1) 0x206fa248 <+72>: lbz r3,96(r1) 0x206fa24c <+76>: stw r3,76(r1) 0x206fa250 <+80>: lwz r3,76(r1) 0x206fa254 <+84>: rlwinm r3,r3,2,0,29 0x206fa258 <+88>: lwz r4,-32596(r30) 0x206fa25c <+92>: lwzx r3,r3,r4 0x206fa260 <+96>: add r3,r3,r4 0x206fa264 <+100>: mtctr r3 0x206fa268 <+104>: bctr 0x206fa26c <+108>: lbz r3,97(r1) 0x206fa270 <+112>: cmplwi r3,0 0x206fa274 <+116>: beq- 0x206fa644 0x206fa278 <+120>: b 0x206fa308 0x206fa27c <+124>: lbz r3,97(r1) 0x206fa280 <+128>: cmplwi r3,0 0x206fa284 <+132>: beq- 0x206fa5e8 0x206fa288 <+136>: b 0x206fa308 0x206fa28c <+140>: lbz r3,97(r1) 0x206fa290 <+144>: stw r3,60(r1) 0x206fa294 <+148>: cmplwi r3,0 0x206fa298 <+152>: beq- 0x206fa530 0x206fa29c <+156>: b 0x206fa2a0 0x206fa2a0 <+160>: lwz r3,60(r1) 0x206fa2a4 <+164>: cmplwi r3,2 0x206fa2a8 <+168>: beq- 0x206fa58c 0x206fa2ac <+172>: b 0x206fa308 0x206fa2b0 <+176>: lbz r3,97(r1) 0x206fa2b4 <+180>: stw r3,56(r1) 0x206fa2b8 <+184>: cmplwi r3,0 0x206fa2bc <+188>: beq- 0x206fa470 0x206fa2c0 <+192>: b 0x206fa2c4 0x206fa2c4 <+196>: lwz r3,56(r1) ---Type to continue, or q to quit--- 0x206fa2c8 <+200>: cmplwi r3,2 0x206fa2cc <+204>: beq- 0x206fa4d0 0x206fa2d0 <+208>: b 0x206fa308 0x206fa2d4 <+212>: lbz r3,97(r1) 0x206fa2d8 <+216>: stw r3,52(r1) 0x206fa2dc <+220>: cmplwi r3,0 0x206fa2e0 <+224>: beq- 0x206fa32c 0x206fa2e4 <+228>: b 0x206fa2e8 0x206fa2e8 <+232>: lwz r3,52(r1) 0x206fa2ec <+236>: cmplwi r3,2 0x206fa2f0 <+240>: beq- 0x206fa38c 0x206fa2f4 <+244>: b 0x206fa2f8 0x206fa2f8 <+248>: lwz r3,52(r1) 0x206fa2fc <+252>: cmplwi r3,4 0x206fa300 <+256>: beq- 0x206fa3ec 0x206fa304 <+260>: b 0x206fa308 0x206fa308 <+264>: lbz r3,97(r1) 0x206fa30c <+268>: stw r3,48(r1) 0x206fa310 <+272>: cmplwi r3,1 0x206fa314 <+276>: beq- 0x206fa6b8 0x206fa318 <+280>: b 0x206fa31c 0x206fa31c <+284>: lwz r3,48(r1) 0x206fa320 <+288>: cmplwi r3,3 0x206fa324 <+292>: beq- 0x206fa6d4 0x206fa328 <+296>: b 0x206fa69c 0x206fa32c <+300>: msync 0x206fa330 <+304>: lwz r3,68(r1) 0x206fa334 <+308>: lwz r4,72(r1) 0x206fa338 <+312>: lwarx r4,0,r4 0x206fa33c <+316>: stw r4,44(r1) 0x206fa340 <+320>: cmpw r3,r4 0x206fa344 <+324>: bne- 0x206fa35c 0x206fa348 <+328>: lwz r3,64(r1) 0x206fa34c <+332>: lwz r4,72(r1) 0x206fa350 <+336>: stwcx. r3,0,r4 0x206fa354 <+340>: bne+ 0x206fa330 0x206fa358 <+344>: b 0x206fa368 0x206fa35c <+348>: lwz r3,44(r1) 0x206fa360 <+352>: lwz r4,72(r1) 0x206fa364 <+356>: stwcx. r3,0,r4 0x206fa368 <+360>: lwz r4,44(r1) 0x206fa36c <+364>: lwz r3,68(r1) 0x206fa370 <+368>: xor r3,r4,r3 0x206fa374 <+372>: cntlzw r3,r3 0x206fa378 <+376>: rlwinm r3,r3,27,5,31 0x206fa37c <+380>: .long 0x7c2004ac 0x206fa380 <+384>: stw r4,88(r1) 0x206fa384 <+388>: stb r3,92(r1) 0x206fa388 <+392>: b 0x206fa44c 0x206fa38c <+396>: msync 0x206fa390 <+400>: lwz r3,68(r1) ---Type to continue, or q to quit--- 0x206fa394 <+404>: lwz r4,72(r1) 0x206fa398 <+408>: lwarx r4,0,r4 0x206fa39c <+412>: stw r4,40(r1) 0x206fa3a0 <+416>: cmpw r3,r4 0x206fa3a4 <+420>: bne- 0x206fa3bc 0x206fa3a8 <+424>: lwz r3,64(r1) 0x206fa3ac <+428>: lwz r4,72(r1) 0x206fa3b0 <+432>: stwcx. r3,0,r4 0x206fa3b4 <+436>: bne+ 0x206fa390 0x206fa3b8 <+440>: b 0x206fa3c8 0x206fa3bc <+444>: lwz r3,40(r1) 0x206fa3c0 <+448>: lwz r4,72(r1) 0x206fa3c4 <+452>: stwcx. r3,0,r4 0x206fa3c8 <+456>: lwz r4,40(r1) 0x206fa3cc <+460>: lwz r3,68(r1) 0x206fa3d0 <+464>: xor r3,r4,r3 0x206fa3d4 <+468>: cntlzw r3,r3 0x206fa3d8 <+472>: rlwinm r3,r3,27,5,31 0x206fa3dc <+476>: .long 0x7c2004ac 0x206fa3e0 <+480>: stw r4,88(r1) 0x206fa3e4 <+484>: stb r3,92(r1) 0x206fa3e8 <+488>: b 0x206fa44c 0x206fa3ec <+492>: msync 0x206fa3f0 <+496>: lwz r3,68(r1) 0x206fa3f4 <+500>: lwz r4,72(r1) 0x206fa3f8 <+504>: lwarx r4,0,r4 0x206fa3fc <+508>: stw r4,36(r1) 0x206fa400 <+512>: cmpw r3,r4 0x206fa404 <+516>: bne- 0x206fa41c 0x206fa408 <+520>: lwz r3,64(r1) 0x206fa40c <+524>: lwz r4,72(r1) 0x206fa410 <+528>: stwcx. r3,0,r4 0x206fa414 <+532>: bne+ 0x206fa3f0 0x206fa418 <+536>: b 0x206fa428 0x206fa41c <+540>: lwz r3,36(r1) 0x206fa420 <+544>: lwz r4,72(r1) 0x206fa424 <+548>: stwcx. r3,0,r4 0x206fa428 <+552>: lwz r4,36(r1) 0x206fa42c <+556>: lwz r3,68(r1) 0x206fa430 <+560>: xor r3,r4,r3 0x206fa434 <+564>: cntlzw r3,r3 0x206fa438 <+568>: rlwinm r3,r3,27,5,31 0x206fa43c <+572>: .long 0x7c2004ac 0x206fa440 <+576>: stw r4,88(r1) 0x206fa444 <+580>: stb r3,92(r1) 0x206fa448 <+584>: b 0x206fa44c 0x206fa44c <+588>: lwz r3,88(r1) 0x206fa450 <+592>: stw r3,32(r1) 0x206fa454 <+596>: stw r3,192(r1) 0x206fa458 <+600>: lbz r4,92(r1) 0x206fa45c <+604>: clrlwi r3,r4,31 ---Type to continue, or q to quit--- 0x206fa460 <+608>: stb r4,199(r1) 0x206fa464 <+612>: cmplwi r3,0 0x206fa468 <+616>: bne- 0x206fa734 0x206fa46c <+620>: b 0x206fa720 0x206fa470 <+624>: .long 0x7c2004ac 0x206fa474 <+628>: lwz r3,68(r1) 0x206fa478 <+632>: lwz r4,72(r1) 0x206fa47c <+636>: lwarx r4,0,r4 0x206fa480 <+640>: stw r4,28(r1) 0x206fa484 <+644>: cmpw r3,r4 0x206fa488 <+648>: bne- 0x206fa4a0 0x206fa48c <+652>: lwz r3,64(r1) 0x206fa490 <+656>: lwz r4,72(r1) 0x206fa494 <+660>: stwcx. r3,0,r4 0x206fa498 <+664>: bne+ 0x206fa474 0x206fa49c <+668>: b 0x206fa4ac 0x206fa4a0 <+672>: lwz r3,28(r1) 0x206fa4a4 <+676>: lwz r4,72(r1) 0x206fa4a8 <+680>: stwcx. r3,0,r4 0x206fa4ac <+684>: lwz r4,28(r1) 0x206fa4b0 <+688>: lwz r3,68(r1) 0x206fa4b4 <+692>: xor r3,r4,r3 0x206fa4b8 <+696>: cntlzw r3,r3 0x206fa4bc <+700>: rlwinm r3,r3,27,5,31 0x206fa4c0 <+704>: .long 0x7c2004ac 0x206fa4c4 <+708>: stw r4,88(r1) 0x206fa4c8 <+712>: stb r3,92(r1) 0x206fa4cc <+716>: b 0x206fa44c 0x206fa4d0 <+720>: .long 0x7c2004ac 0x206fa4d4 <+724>: lwz r3,68(r1) 0x206fa4d8 <+728>: lwz r4,72(r1) 0x206fa4dc <+732>: lwarx r4,0,r4 0x206fa4e0 <+736>: stw r4,24(r1) 0x206fa4e4 <+740>: cmpw r3,r4 0x206fa4e8 <+744>: bne- 0x206fa500 0x206fa4ec <+748>: lwz r3,64(r1) 0x206fa4f0 <+752>: lwz r4,72(r1) 0x206fa4f4 <+756>: stwcx. r3,0,r4 0x206fa4f8 <+760>: bne+ 0x206fa4d4 0x206fa4fc <+764>: b 0x206fa50c 0x206fa500 <+768>: lwz r3,24(r1) 0x206fa504 <+772>: lwz r4,72(r1) 0x206fa508 <+776>: stwcx. r3,0,r4 0x206fa50c <+780>: lwz r4,24(r1) 0x206fa510 <+784>: lwz r3,68(r1) 0x206fa514 <+788>: xor r3,r4,r3 0x206fa518 <+792>: cntlzw r3,r3 0x206fa51c <+796>: rlwinm r3,r3,27,5,31 0x206fa520 <+800>: .long 0x7c2004ac 0x206fa524 <+804>: stw r4,88(r1) 0x206fa528 <+808>: stb r3,92(r1) ---Type to continue, or q to quit--- 0x206fa52c <+812>: b 0x206fa44c 0x206fa530 <+816>: lwz r3,68(r1) 0x206fa534 <+820>: lwz r4,72(r1) 0x206fa538 <+824>: lwarx r4,0,r4 0x206fa53c <+828>: stw r4,20(r1) 0x206fa540 <+832>: cmpw r3,r4 0x206fa544 <+836>: bne- 0x206fa55c 0x206fa548 <+840>: lwz r3,64(r1) 0x206fa54c <+844>: lwz r4,72(r1) 0x206fa550 <+848>: stwcx. r3,0,r4 0x206fa554 <+852>: bne+ 0x206fa530 0x206fa558 <+856>: b 0x206fa568 0x206fa55c <+860>: lwz r3,20(r1) 0x206fa560 <+864>: lwz r4,72(r1) 0x206fa564 <+868>: stwcx. r3,0,r4 0x206fa568 <+872>: lwz r4,20(r1) 0x206fa56c <+876>: lwz r3,68(r1) 0x206fa570 <+880>: xor r3,r4,r3 0x206fa574 <+884>: cntlzw r3,r3 0x206fa578 <+888>: rlwinm r3,r3,27,5,31 => 0x206fa57c <+892>: .long 0x7c2004ac 0x206fa580 <+896>: stw r4,88(r1) 0x206fa584 <+900>: stb r3,92(r1) 0x206fa588 <+904>: b 0x206fa44c 0x206fa58c <+908>: lwz r3,68(r1) 0x206fa590 <+912>: lwz r4,72(r1) 0x206fa594 <+916>: lwarx r4,0,r4 0x206fa598 <+920>: stw r4,16(r1) 0x206fa59c <+924>: cmpw r3,r4 0x206fa5a0 <+928>: bne- 0x206fa5b8 0x206fa5a4 <+932>: lwz r3,64(r1) 0x206fa5a8 <+936>: lwz r4,72(r1) 0x206fa5ac <+940>: stwcx. r3,0,r4 0x206fa5b0 <+944>: bne+ 0x206fa58c 0x206fa5b4 <+948>: b 0x206fa5c4 0x206fa5b8 <+952>: lwz r3,16(r1) 0x206fa5bc <+956>: lwz r4,72(r1) 0x206fa5c0 <+960>: stwcx. r3,0,r4 0x206fa5c4 <+964>: lwz r4,16(r1) 0x206fa5c8 <+968>: lwz r3,68(r1) 0x206fa5cc <+972>: xor r3,r4,r3 0x206fa5d0 <+976>: cntlzw r3,r3 0x206fa5d4 <+980>: rlwinm r3,r3,27,5,31 0x206fa5d8 <+984>: .long 0x7c2004ac 0x206fa5dc <+988>: stw r4,88(r1) 0x206fa5e0 <+992>: stb r3,92(r1) 0x206fa5e4 <+996>: b 0x206fa44c 0x206fa5e8 <+1000>: .long 0x7c2004ac 0x206fa5ec <+1004>: lwz r3,68(r1) 0x206fa5f0 <+1008>: lwz r4,72(r1) 0x206fa5f4 <+1012>: lwarx r4,0,r4 ---Type to continue, or q to quit--- 0x206fa5f8 <+1016>: stw r4,12(r1) 0x206fa5fc <+1020>: cmpw r3,r4 0x206fa600 <+1024>: bne- 0x206fa618 0x206fa604 <+1028>: lwz r3,64(r1) 0x206fa608 <+1032>: lwz r4,72(r1) 0x206fa60c <+1036>: stwcx. r3,0,r4 0x206fa610 <+1040>: bne+ 0x206fa5ec 0x206fa614 <+1044>: b 0x206fa624 0x206fa618 <+1048>: lwz r3,12(r1) 0x206fa61c <+1052>: lwz r4,72(r1) 0x206fa620 <+1056>: stwcx. r3,0,r4 0x206fa624 <+1060>: lwz r4,12(r1) 0x206fa628 <+1064>: lwz r3,68(r1) 0x206fa62c <+1068>: xor r3,r4,r3 0x206fa630 <+1072>: cntlzw r3,r3 0x206fa634 <+1076>: rlwinm r3,r3,27,5,31 0x206fa638 <+1080>: stw r4,88(r1) 0x206fa63c <+1084>: stb r3,92(r1) 0x206fa640 <+1088>: b 0x206fa44c 0x206fa644 <+1092>: lwz r3,68(r1) 0x206fa648 <+1096>: lwz r4,72(r1) 0x206fa64c <+1100>: lwarx r4,0,r4 0x206fa650 <+1104>: stw r4,8(r1) 0x206fa654 <+1108>: cmpw r3,r4 0x206fa658 <+1112>: bne- 0x206fa670 0x206fa65c <+1116>: lwz r3,64(r1) 0x206fa660 <+1120>: lwz r4,72(r1) 0x206fa664 <+1124>: stwcx. r3,0,r4 0x206fa668 <+1128>: bne+ 0x206fa644 0x206fa66c <+1132>: b 0x206fa67c 0x206fa670 <+1136>: lwz r3,8(r1) 0x206fa674 <+1140>: lwz r4,72(r1) 0x206fa678 <+1144>: stwcx. r3,0,r4 0x206fa67c <+1148>: lwz r4,8(r1) 0x206fa680 <+1152>: lwz r3,68(r1) 0x206fa684 <+1156>: xor r3,r4,r3 0x206fa688 <+1160>: cntlzw r3,r3 0x206fa68c <+1164>: rlwinm r3,r3,27,5,31 0x206fa690 <+1168>: stw r4,88(r1) 0x206fa694 <+1172>: stb r3,92(r1) 0x206fa698 <+1176>: b 0x206fa44c 0x206fa69c <+1180>: lwz r4,-32628(r30) 0x206fa6a0 <+1184>: lwz r6,-32704(r30) 0x206fa6a4 <+1188>: addi r3,r1,152 0x206fa6a8 <+1192>: li r5,1 0x206fa6ac <+1196>: li r7,0 0x206fa6b0 <+1200>: bl 0x20710f08 0x206fa6b4 <+1204>: b 0x206fa6f0 0x206fa6b8 <+1208>: lwz r4,-32624(r30) 0x206fa6bc <+1212>: lwz r6,-32704(r30) 0x206fa6c0 <+1216>: addi r3,r1,128 ---Type to continue, or q to quit--- 0x206fa6c4 <+1220>: li r5,1 0x206fa6c8 <+1224>: li r7,0 0x206fa6cc <+1228>: bl 0x20710f08 0x206fa6d0 <+1232>: b 0x206fa710 0x206fa6d4 <+1236>: lwz r4,-32620(r30) 0x206fa6d8 <+1240>: lwz r6,-32704(r30) 0x206fa6dc <+1244>: addi r3,r1,104 0x206fa6e0 <+1248>: li r5,1 0x206fa6e4 <+1252>: li r7,0 0x206fa6e8 <+1256>: bl 0x20710f08 0x206fa6ec <+1260>: b 0x206fa700 0x206fa6f0 <+1264>: lwz r4,-32616(r30) 0x206fa6f4 <+1268>: addi r3,r1,152 0x206fa6f8 <+1272>: bl 0x207e9064 0x206fa6fc <+1276>: trap 0x206fa700 <+1280>: lwz r4,-32612(r30) 0x206fa704 <+1284>: addi r3,r1,104 0x206fa708 <+1288>: bl 0x207e9064 0x206fa70c <+1292>: trap 0x206fa710 <+1296>: lwz r4,-32608(r30) 0x206fa714 <+1300>: addi r3,r1,128 0x206fa718 <+1304>: bl 0x207e9064 0x206fa71c <+1308>: trap 0x206fa720 <+1312>: lwz r3,32(r1) 0x206fa724 <+1316>: stw r3,84(r1) 0x206fa728 <+1320>: li r3,1 0x206fa72c <+1324>: stw r3,80(r1) 0x206fa730 <+1328>: b 0x206fa748 0x206fa734 <+1332>: lwz r3,32(r1) 0x206fa738 <+1336>: stw r3,84(r1) 0x206fa73c <+1340>: li r3,0 0x206fa740 <+1344>: stw r3,80(r1) 0x206fa744 <+1348>: b 0x206fa748 0x206fa748 <+1352>: lwz r3,80(r1) 0x206fa74c <+1356>: lwz r4,84(r1) 0x206fa750 <+1360>: lwz r0,212(r1) 0x206fa754 <+1364>: lwz r30,200(r1) 0x206fa758 <+1368>: addi r1,r1,208 0x206fa75c <+1372>: mtlr r0 0x206fa760 <+1376>: blr End of assembler dump. ```
bjorn3 commented 2 years ago

It is possible the gdb version you are using doesn't know how to disassemble lwsync. I don't know exactly what the encoded version of it is though.

mortenlj commented 2 years ago

It is possible the gdb version you are using doesn't know how to disassemble lwsync. I don't know exactly what the encoded version of it is though.

Seems likely. I have GNU gdb (GDB) 8.0.1, which is the latest version available in the package manager (using optware-ng), but apparently quite old.

skydig commented 2 years ago

@bjorn3 thanks using RUSTFLAGS="-Ctarget-cpu=e500" , generated bin file has no lwsync instruction now( I use objdump to check), but with sync instruction. when I have chance to run generated bin under target, I will tell you the result

mortenlj commented 2 years ago

I tried building with RUSTFLAGS="-Ctarget-cpu=e500", and my example now works. :tada:

skydig commented 2 years ago

@bjorn3 thanks using RUSTFLAGS="-Ctarget-cpu=e500" , generated bin file has no lwsync instruction now( I use objdump to check), but with sync instruction. when I have chance to run generated bin under target, I will tell you the result

skydig commented 2 years ago

@mortenlj congratulations

skydig commented 2 years ago

@bjorn3 I tested under target, "-Ctarget-cpu=e500" works. this issue can be closed.

th0ma7 commented 10 months ago

@bjorn3 I tested under target, "-Ctarget-cpu=e500" works. this issue can be closed.

@mortenlj I'm on a Synology DS213+ NAS with a FREESCALE QorIQ P1022 CPU (ppc e500 variant iirc).

Having the exact same problem, qoriq support on Synology NAS. Did you have to build tier 3 powerpc-unknown-linux-gnuspe target support first? Or did it worked out using tier 2 powerpc-unknown-linux-gnu with -Ctarget-cpu=e500 build flag?

mortenlj commented 10 months ago

Having the exact same problem, qoriq support on Synology NAS. Did you have to build tier 3 powerpc-unknown-linux-gnuspe target support first? Or did it worked out using tier 2 powerpc-unknown-linux-gnu with -Ctarget-cpu=e500 build flag?

I build the tier 3 support first, using the synology toolchain (downloadable from some synology support site)

You can see the buildscript here (using Earthly): https://github.com/mortenlj/mqtt2file/blob/main/Earthfile

th0ma7 commented 10 months ago

@mortenlj thnx for the hint!

I build the tier 3 support first, using the synology toolchain (downloadable from some synology support site)

I'm a SynoCommunity maintainer and we're using spksrc framework to build Synology compatible packages. In turns it does use the various synology toolchain matching arch & version.

You can see the buildscript here (using Earthly): https://github.com/mortenlj/mqtt2file/blob/main/Earthfile

First time I hear about it and will certainly have a look. But I wonder, do you hapen to have traces or logs of what it actually does behind the scene that I could manually reproduce to integrate into the framework. Later on I could potentially look into migrating things to earthly... I mean, I was able to build stage1, stage2 working out also but it fails at building the toolchain later on.

mortenlj commented 10 months ago

But I wonder, do you hapen to have traces or logs of what it actually does behind the scene that I could manually reproduce to integrate into the framework.

Earthly is mostly just Docker on steroids, there is nothing magical happening behind the scenes. If you follow the imports at the top, you get the definitions of the various DO commands and BUILD targets, where you can see that it is just a bunch of env-variables and RUN commands.

th0ma7 commented 8 months ago

Hi all, I know this thread is closed and I did opened-up a distinct one but I can't get to build a working powerpc gnuspe toolchain. It does build succesfully but the resulting library includes lwsync entries in it (i.e. build/host/stage1/lib/rustlib/powerpc-unknown-linux-gnuspe/lib/libstd-3dce48a1eefa0292.so)

My configuration is as follow:

profile = "compiler"

[build]
target = ["x86_64-unknown-linux-gnu", "powerpc-unknown-linux-gnuspe"]
build-stage = 1
doc-stage = 2
docs = false
docs-minification = false
compiler-docs = false

[rust]
channel = "stable"
lto = "off"

[llvm]
download-ci-llvm = "if-unchanged"

[install]

[dist]

[target.x86_64-unknown-linux-gnu]

[target.powerpc-unknown-linux-gnuspe]
cc = "/home/spksrc/qoriq-debug-update/spksrc/toolchain/syno-qoriq-6.2.4/work/powerpc-e500v2-linux-gnuspe/bin/powerpc-e500v2-linux-g
nuspe-gcc"
cxx = "/home/spksrc/qoriq-debug-update/spksrc/toolchain/syno-qoriq-6.2.4/work/powerpc-e500v2-linux-gnuspe/bin/powerpc-e500v2-linux-
gnuspe-g++"
ar = "/home/spksrc/qoriq-debug-update/spksrc/toolchain/syno-qoriq-6.2.4/work/powerpc-e500v2-linux-gnuspe/bin/powerpc-e500v2-linux-g
nuspe-ar"
ranlib = "/home/spksrc/qoriq-debug-update/spksrc/toolchain/syno-qoriq-6.2.4/work/powerpc-e500v2-linux-gnuspe/bin/powerpc-e500v2-lin
ux-gnuspe-ranlib"
linker = "/home/spksrc/qoriq-debug-update/spksrc/toolchain/syno-qoriq-6.2.4/work/powerpc-e500v2-linux-gnuspe/bin/powerpc-e500v2-lin
ux-gnuspe-gcc"

And the build call is this:

(cd /home/spksrc/qoriq-debug-update/spksrc/toolchain/syno-qoriq-6.2.4/work/rust && \
   CFLAGS_powerpc_unknown_linux_gnuspe="-mcpu=8548 -mhard-float -mfloat-gprs=double" && \
   CXXFLAGS_powerpc_unknown_linux_gnuspe="-mcpu=8548 -mhard-float -mfloat-gprs=double" && \
   LDFLAGS_powerpc_unknown_linux_gnuspe="--sysroot=/home/spksrc/qoriq-debug-update/spksrc/toolchain/syno-qoriq-6.2.4/work/powerpc-e500v2-linux-gnuspe/powerpc-e500v2-linux-gnuspe/sysroot" && \
   RUSTFLAGS="-Ctarget-cpu=e500" && \
   RUST_BACKTRACE=full && \
   ./x build --config /home/spksrc/qoriq-debug-update/spksrc/toolchain/syno-qoriq-6.2.4/work/qoriq.toml)

Help would be really much appreciated.