В Fri, 26 Sep 2014 16:29:40 -0300 Paulo Flabiano Smorigo <pfsmor...@linux.vnet.ibm.com> пишет:
> * conf/Makefile.common [COND_powerpc_ieee1275] (CFLAGS_PLATFORM): Add > -msoft-float -mno-vsx -mno-altivec. > > Also-By: Adhemerval Zanella <azane...@linux.vnet.ibm.com> > --- > ChangeLog | 7 +++++++ > conf/Makefile.common | 3 +++ > 2 files changed, 10 insertions(+) > > diff --git a/ChangeLog b/ChangeLog > index 192e8bc..40eb90c 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,10 @@ > +2014-09-26 Paulo Flabiano Smorigo <pfsmor...@linux.vnet.ibm.com> > + > + Add flags for powerpc in order to avoid exceptions > + > + * conf/Makefile.common [COND_powerpc_ieee1275] (CFLAGS_PLATFORM): Add > + -msoft-float -mno-vsx -mno-altivec. > + > 2014-09-25 Colin Watson <cjwat...@ubuntu.com> > > Fix in-tree --platform=none > diff --git a/conf/Makefile.common b/conf/Makefile.common > index 51fbaf9..57c491a 100644 > --- a/conf/Makefile.common > +++ b/conf/Makefile.common > @@ -22,6 +22,9 @@ endif > if COND_arm64 > CFLAGS_PLATFORM += -mcmodel=large > endif > +if COND_powerpc_ieee1275 > + CFLAGS_PLATFORM += -msoft-float -mno-vsx -mno-altivec > +endif > > #FIXME: discover and check XEN headers > CPPFLAGS_XEN = -I/usr/include Thank you! I confirm that this patch works and does not break grub on earlier CPU :) There are still differences in generated code, so we probably need to tune some more flags. Here is difference between ppc64 and ppc64le: -usr.ppc64/lib/grub2/powerpc-ieee1275/kernel.img: file format elf32-powerpc +usr.ppc64le/lib/grub2/powerpc-ieee1275/kernel.img: file format elf32-powerpc Disassembly of section .text: @@ -1389,7 +1389,7 @@ Disassembly of section .text: 201594: 38 e0 00 00 li r7,0 201598: 48 00 02 11 bl 0x2017a8 20159c: 2f 83 00 00 cmpwi cr7,r3,0 - 2015a0: 41 bc 00 64 blt cr7,0x201604 + 2015a0: 41 fc 00 64 blt+ cr7,0x201604 2015a4: 4b ff ff c0 b 0x201564 2015a8: 3c 80 00 21 lis r4,33 2015ac: 7f e3 fb 78 mr r3,r31 @@ -2769,7 +2769,7 @@ Disassembly of section .text: 202b24: 48 00 80 75 bl 0x20ab98 202b28: 81 81 00 30 lwz r12,48(r1) 202b2c: 39 61 00 40 addi r11,r1,64 - 202b30: 7d 80 81 20 mtcrf 8,r12 + 202b30: 7d 90 81 20 mtocrf 8,r12 202b34: 4b ff d8 3c b 0x200370 202b38: 94 21 ff 90 stwu r1,-112(r1) 202b3c: 7c 08 02 a6 mflr r0 @@ -3387,7 +3387,7 @@ Disassembly of section .text: 2034cc: 7c 7d f8 ae lbzx r3,r29,r31 2034d0: 48 00 74 5d bl 0x20a92c 2034d4: 2f 83 00 00 cmpwi cr7,r3,0 - 2034d8: 41 9e 00 0c beq cr7,0x2034e4 + 2034d8: 41 de 00 0c beq- cr7,0x2034e4 2034dc: 3b ff 00 01 addi r31,r31,1 2034e0: 4b ff ff ec b 0x2034cc 2034e4: 38 80 00 3d li r4,61 @@ -3603,9 +3603,9 @@ Disassembly of section .text: 20382c: 7d 3e 52 14 add r9,r30,r10 203830: 7f 9e 40 40 cmplw cr7,r30,r8 203834: 7c 6a 1b 78 mr r10,r3 - 203838: 41 9d 00 0c bgt cr7,0x203844 + 203838: 41 dd 00 0c bgt- cr7,0x203844 20383c: 2f 9e ff ff cmpwi cr7,r30,-1 - 203840: 40 be 00 1c bne cr7,0x20385c + 203840: 40 fe 00 1c bne+ cr7,0x20385c 203844: 39 40 00 01 li r10,1 203848: 48 00 00 14 b 0x20385c 20384c: 89 09 00 00 lbz r8,0(r9) @@ -5519,14 +5519,14 @@ Disassembly of section .text: 20561c: 7c 7d 1b 78 mr r29,r3 205620: 4b ff f5 6d bl 0x204b8c 205624: 7f 83 e8 00 cmpw cr7,r3,r29 - 205628: 7c 60 00 26 mfcr r3 + 205628: 7c 70 10 26 mfocrf r3,1 20562c: 54 63 ef fe rlwinm r3,r3,29,31,31 205630: 4b ff fe e4 b 0x205514 205634: 4b ff f5 59 bl 0x204b8c 205638: 7c 7d 1b 78 mr r29,r3 20563c: 4b ff f5 51 bl 0x204b8c 205640: 7f 83 e8 00 cmpw cr7,r3,r29 - 205644: 7c 60 00 26 mfcr r3 + 205644: 7c 70 10 26 mfocrf r3,1 205648: 54 63 f7 fe rlwinm r3,r3,30,31,31 20564c: 4b ff fe c8 b 0x205514 205650: 4b ff f5 3d bl 0x204b8c @@ -5722,7 +5722,7 @@ Disassembly of section .text: 205948: 7f 07 c3 78 mr r7,r24 20594c: 48 00 12 99 bl 0x206be4 205950: 2c 03 00 00 cmpwi r3,0 - 205954: 40 a2 00 10 bne 0x205964 + 205954: 40 e2 00 10 bne+ 0x205964 205958: 7f e3 fb 78 mr r3,r31 20595c: 48 00 0e 99 bl 0x2067f4 205960: 48 00 00 2c b 0x20598c @@ -5765,7 +5765,7 @@ Disassembly of section .text: 2059f4: 38 63 00 18 addi r3,r3,24 2059f8: 4b ff ff e4 b 0x2059dc 2059fc: 2f 83 00 00 cmpwi cr7,r3,0 - 205a00: 4c be 00 20 bclr+ 4,4*cr7+eq + 205a00: 4c fe 00 20 bnelr+ cr7 205a04: 2b 84 00 68 cmplwi cr7,r4,104 205a08: 41 9e 00 24 beq cr7,0x205a2c 205a0c: 2b 84 00 75 cmplwi cr7,r4,117 @@ -6022,12 +6022,12 @@ Disassembly of section .text: 205df8: 39 29 d9 a8 addi r9,r9,-9816 205dfc: 7f 84 48 00 cmpw cr7,r4,r9 205e00: 90 01 00 14 stw r0,20(r1) - 205e04: 40 be 00 0c bne cr7,0x205e10 + 205e04: 40 fe 00 0c bne+ cr7,0x205e10 205e08: 4b ff ff 1d bl 0x205d24 205e0c: 48 00 00 14 b 0x205e20 205e10: 39 29 00 18 addi r9,r9,24 205e14: 7f 84 48 00 cmpw cr7,r4,r9 - 205e18: 40 be 00 10 bne cr7,0x205e28 + 205e18: 40 fe 00 10 bne+ cr7,0x205e28 205e1c: 4b ff fe 99 bl 0x205cb4 205e20: 38 60 ff ff li r3,-1 205e24: 48 00 00 70 b 0x205e94 @@ -6213,7 +6213,7 @@ Disassembly of section .text: 2060f4: 7e a5 ab 78 mr r5,r21 2060f8: 4b ff fa bd bl 0x205bb4 2060fc: 7c 7e 1b 79 mr. r30,r3 - 206100: 41 a2 ff d8 beq 0x2060d8 + 206100: 41 c2 ff d8 beq- 0x2060d8 206104: 2f 1d 00 00 cmpwi cr6,r29,0 206108: 2f 9e 00 00 cmpwi cr7,r30,0 20610c: 40 9a 00 3c bne cr6,0x206148 @@ -6442,7 +6442,7 @@ Disassembly of section .text: 206488: 7c 08 02 a6 mflr r0 20648c: 70 6a 00 0f andi. r10,r3,15 206490: 90 01 00 14 stw r0,20(r1) - 206494: 41 a2 00 10 beq 0x2064a4 + 206494: 41 e2 00 10 beq+ 0x2064a4 206498: 3c 60 00 21 lis r3,33 20649c: 38 63 db 20 addi r3,r3,-9440 2064a0: 48 00 00 50 b 0x2064f0 @@ -6496,7 +6496,7 @@ Disassembly of section .text: 206560: 90 01 00 54 stw r0,84(r1) 206564: 3a b5 00 01 addi r21,r21,1 206568: 2f 89 00 00 cmpwi cr7,r9,0 - 20656c: 41 9e 02 20 beq cr7,0x20678c + 20656c: 41 de 02 20 beq- cr7,0x20678c 206570: 54 74 e1 3f rlwinm. r20,r3,28,4,31 206574: 40 82 00 08 bne 0x20657c 206578: 3a 80 00 01 li r20,1 @@ -6528,13 +6528,13 @@ Disassembly of section .text: 2065e0: 7f ff b8 10 subfc r31,r31,r23 2065e4: 7f de b1 10 subfe r30,r30,r22 2065e8: 2f 84 00 00 cmpwi cr7,r4,0 - 2065ec: 40 be 00 10 bne cr7,0x2065fc + 2065ec: 40 fe 00 10 bne+ cr7,0x2065fc 2065f0: 3c 60 00 21 lis r3,33 2065f4: 38 63 db 80 addi r3,r3,-9344 2065f8: 48 00 57 79 bl 0x20bd70 2065fc: 80 a4 00 08 lwz r5,8(r4) 206600: 7f 85 90 00 cmpw cr7,r5,r18 - 206604: 41 be 00 10 beq cr7,0x206614 + 206604: 41 fe 00 10 beq+ cr7,0x206614 206608: 3c 60 00 21 lis r3,33 20660c: 38 63 db 91 addi r3,r3,-9327 206610: 48 00 57 61 bl 0x20bd70 @@ -6687,7 +6687,7 @@ Disassembly of section .text: 20685c: 41 9d 00 ac bgt cr7,0x206908 206860: 80 a4 00 08 lwz r5,8(r4) 206864: 7f 85 38 00 cmpw cr7,r5,r7 - 206868: 41 be 00 10 beq cr7,0x206878 + 206868: 41 fe 00 10 beq+ cr7,0x206878 20686c: 3c 60 00 21 lis r3,33 206870: 38 63 db 91 addi r3,r3,-9327 206874: 48 00 54 fd bl 0x20bd70 @@ -6976,7 +6976,7 @@ Disassembly of section .text: 206ce0: 38 60 00 00 li r3,0 206ce4: 81 81 00 14 lwz r12,20(r1) 206ce8: 39 61 00 30 addi r11,r1,48 - 206cec: 7d 80 81 20 mtcrf 8,r12 + 206cec: 7d 90 81 20 mtocrf 8,r12 206cf0: 4b ff 96 74 b 0x200364 206cf4: 94 21 ff f0 stwu r1,-16(r1) 206cf8: 7c 08 02 a6 mflr r0 @@ -7308,7 +7308,7 @@ Disassembly of section .text: 207210: 48 00 20 3d bl 0x20924c 207214: 7f e5 fb 78 mr r5,r31 207218: 7c 7e 1b 79 mr. r30,r3 - 20721c: 41 82 00 10 beq 0x20722c + 20721c: 41 c2 00 10 beq- 0x20722c 207220: 89 3e 00 00 lbz r9,0(r30) 207224: 2f 89 00 00 cmpwi cr7,r9,0 207228: 40 9e 00 1c bne cr7,0x207244 @@ -7763,7 +7763,7 @@ Disassembly of section .text: 20792c: 4b ff ee c9 bl 0x2067f4 207930: 48 00 00 0c b 0x20793c 207934: 2f 9d 00 00 cmpwi cr7,r29,0 - 207938: 40 be 00 40 bne cr7,0x207978 + 207938: 40 fe 00 40 bne+ cr7,0x207978 20793c: 81 39 00 20 lwz r9,32(r25) 207940: 3b a0 00 00 li r29,0 207944: 2f 89 00 00 cmpwi cr7,r9,0 @@ -7961,7 +7961,7 @@ Disassembly of section .text: 207c44: 38 84 dd 49 addi r4,r4,-8887 207c48: 48 00 18 55 bl 0x20949c 207c4c: 2f 9d 00 00 cmpwi cr7,r29,0 - 207c50: 41 9e 00 14 beq cr7,0x207c64 + 207c50: 41 de 00 14 beq- cr7,0x207c64 207c54: 7f 9d f0 40 cmplw cr7,r29,r30 207c58: 41 9e 00 0c beq cr7,0x207c64 207c5c: 7f a3 eb 78 mr r3,r29 @@ -8745,7 +8745,7 @@ Disassembly of section .text: 208884: 2f 88 00 00 cmpwi cr7,r8,0 208888: 7d 5f 52 14 add r10,r31,r10 20888c: 39 28 00 01 addi r9,r8,1 - 208890: 40 be 00 3c bne cr7,0x2088cc + 208890: 40 fe 00 3c bne+ cr7,0x2088cc 208894: 39 20 00 01 li r9,1 208898: 48 00 00 34 b 0x2088cc 20889c: 81 0a 00 20 lwz r8,32(r10) @@ -8857,7 +8857,7 @@ Disassembly of section .text: 208a44: 2f 87 00 00 cmpwi cr7,r7,0 208a48: 7d 3f 4a 14 add r9,r31,r9 208a4c: 39 47 00 01 addi r10,r7,1 - 208a50: 40 be 00 24 bne cr7,0x208a74 + 208a50: 40 fe 00 24 bne+ cr7,0x208a74 208a54: 39 40 00 01 li r10,1 208a58: 48 00 00 1c b 0x208a74 208a5c: 80 c9 00 04 lwz r6,4(r9) @@ -9792,7 +9792,7 @@ Disassembly of section .text: 2098e0: 38 80 00 29 li r4,41 2098e4: 48 00 10 01 bl 0x20a8e4 2098e8: 2c 03 00 00 cmpwi r3,0 - 2098ec: 41 a2 ff e8 beq 0x2098d4 + 2098ec: 41 c2 ff e8 beq- 0x2098d4 2098f0: 3b 83 00 01 addi r28,r3,1 2098f4: 7f e3 fb 78 mr r3,r31 2098f8: 4b ff d8 f5 bl 0x2071ec @@ -10444,7 +10444,7 @@ Disassembly of section .text: 20a310: 38 84 ff f8 addi r4,r4,-8 20a314: 4b ff eb 55 bl 0x208e68 20a318: 2f 83 00 00 cmpwi cr7,r3,0 - 20a31c: 40 be 00 18 bne cr7,0x20a334 + 20a31c: 40 fe 00 18 bne+ cr7,0x20a334 20a320: 3c 60 00 21 lis r3,33 20a324: 3c 80 00 21 lis r4,33 20a328: 38 63 d2 f2 addi r3,r3,-11534 @@ -10536,7 +10536,7 @@ Disassembly of section .text: 20a480: 48 00 07 19 bl 0x20ab98 20a484: 35 3d 00 01 addic. r9,r29,1 20a488: 7c 7f 1b 78 mr r31,r3 - 20a48c: 41 82 00 08 beq 0x20a494 + 20a48c: 41 c2 00 08 beq- 0x20a494 20a490: 7d 3e 4b 78 mr r30,r9 20a494: 89 3e 00 00 lbz r9,0(r30) 20a498: 3b a0 00 00 li r29,0 @@ -10546,7 +10546,7 @@ Disassembly of section .text: 20a4a8: 48 00 06 a1 bl 0x20ab48 20a4ac: 7c 7d 1b 78 mr r29,r3 20a4b0: 2f 9f 00 00 cmpwi cr7,r31,0 - 20a4b4: 40 be 00 18 bne cr7,0x20a4cc + 20a4b4: 40 fe 00 18 bne+ cr7,0x20a4cc 20a4b8: 48 00 00 08 b 0x20a4c0 20a4bc: 3b a0 00 00 li r29,0 20a4c0: 83 e1 00 0c lwz r31,12(r1) @@ -10589,7 +10589,7 @@ Disassembly of section .text: 20a554: 2f 83 00 00 cmpwi cr7,r3,0 20a558: 7c 69 1b 78 mr r9,r3 20a55c: 7c 6a 1b 78 mr r10,r3 - 20a560: 40 be 00 28 bne cr7,0x20a588 + 20a560: 40 fe 00 28 bne+ cr7,0x20a588 20a564: 39 40 00 01 li r10,1 20a568: 48 00 00 20 b 0x20a588 20a56c: 80 61 00 08 lwz r3,8(r1) @@ -11237,7 +11237,7 @@ Disassembly of section .text: 20af74: 89 49 00 01 lbz r10,1(r9) 20af78: 39 09 00 02 addi r8,r9,2 20af7c: 2b 8a 00 6c cmplwi cr7,r10,108 - 20af80: 40 9e 00 0c bne cr7,0x20af8c + 20af80: 40 de 00 0c bne- cr7,0x20af8c 20af84: 89 49 00 02 lbz r10,2(r9) 20af88: 39 09 00 03 addi r8,r9,3 20af8c: 2b 8a 00 70 cmplwi cr7,r10,112 @@ -11337,7 +11337,7 @@ Disassembly of section .text: 20b104: 48 00 00 28 b 0x20b12c 20b108: 89 3e 00 01 lbz r9,1(r30) 20b10c: 2b 89 00 6c cmplwi cr7,r9,108 - 20b110: 41 be 00 10 beq cr7,0x20b120 + 20b110: 41 fe 00 10 beq+ cr7,0x20b120 20b114: 3b 9e 00 02 addi r28,r30,2 20b118: 39 40 00 01 li r10,1 20b11c: 48 00 00 10 b 0x20b12c @@ -11563,7 +11563,7 @@ Disassembly of section .text: 20b48c: 91 21 00 30 stw r9,48(r1) 20b490: 89 2a 00 01 lbz r9,1(r10) 20b494: 2b 89 00 6c cmplwi cr7,r9,108 - 20b498: 40 9e 00 10 bne cr7,0x20b4a8 + 20b498: 40 de 00 10 bne- cr7,0x20b4a8 20b49c: 39 2a 00 03 addi r9,r10,3 20b4a0: 91 21 00 30 stw r9,48(r1) 20b4a4: 89 2a 00 02 lbz r9,2(r10) @@ -11659,7 +11659,7 @@ Disassembly of section .text: 20b60c: 3b ff 00 01 addi r31,r31,1 20b610: 39 00 ff 80 li r8,-128 20b614: 39 29 00 01 addi r9,r9,1 - 20b618: 40 bc 00 2c bge cr7,0x20b644 + 20b618: 40 fc 00 2c bge+ cr7,0x20b644 20b61c: 39 20 00 01 li r9,1 20b620: 48 00 00 24 b 0x20b644 20b624: 7f 9f e8 40 cmplw cr7,r31,r29 @@ -12450,7 +12450,7 @@ Disassembly of section .text: 20c268: 38 60 00 00 li r3,0 20c26c: 81 81 04 e8 lwz r12,1256(r1) 20c270: 39 61 05 10 addi r11,r1,1296 - 20c274: 7d 80 81 20 mtcrf 8,r12 + 20c274: 7d 90 81 20 mtocrf 8,r12 20c278: 4b ff 40 e0 b 0x200358 20c27c: 94 21 ff d0 stwu r1,-48(r1) 20c280: 7c 08 02 a6 mflr r0 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel