-
Notifications
You must be signed in to change notification settings - Fork 10
Refactor arch specific bootstrap.c to only contain syscall wrappers #105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+166
−1,052
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This means that users must now include the arch specific .c file first and then the general bootstrap.c. This should make it way easier to maintain the existing architectures and potentially add new ones later. knight-native can not be treated like this since it doesn't have read/write syscalls, only fputc/fgetc.
gtker
added a commit
to gtker/M2libc
that referenced
this pull request
Oct 27, 2025
``` .global _start _start: mov x0,1 mov x0,2 mov x0,3 mov x0,4 mov x0,5 mov x0,6 mov x0,7 mov x0,8 mov x0,9 mov x0,10 mov x0,11 mov x0,12 mov x0,13 mov x0,14 mov x0,15 mov x0,16 mov x0,17 mov x0,18 mov x0,19 mov x0,20 mov x0,21 mov x0,22 mov x0,23 mov x0,24 mov x0,25 mov x0,26 mov x0,27 mov x0,28 mov x0,29 mov x0,30 mov x0,31 mov x0,32 mov x0,33 mov x0,34 mov x0,35 mov x0,36 mov x0,37 mov x0,38 mov x0,39 mov x0,40 mov x0,41 mov x0,42 mov x0,43 mov x0,44 mov x0,45 mov x0,46 mov x0,47 mov x0,48 mov x0,49 mov x0,50 mov x0,51 mov x0,52 mov x0,53 mov x0,54 mov x0,55 mov x0,56 mov x0,57 mov x0,58 mov x0,59 mov x0,60 mov x0,61 mov x0,62 mov x0,63 mov x0,64 mov x0,65 mov x0,66 mov x0,67 mov x0,68 mov x0,69 mov x0,70 mov x0,71 mov x0,72 mov x0,73 mov x0,74 mov x0,75 mov x0,76 mov x0,77 mov x0,78 mov x0,79 mov x0,80 mov x0,81 mov x0,82 mov x0,83 mov x0,84 mov x0,85 mov x0,86 mov x0,87 mov x0,88 mov x0,89 mov x0,90 mov x0,91 mov x0,92 mov x0,93 mov x0,94 mov x0,95 mov x0,96 mov x0,97 mov x0,98 mov x0,99 mov x0,100 mov x0,101 mov x0,102 mov x0,103 mov x0,104 mov x0,105 mov x0,106 mov x0,107 mov x0,108 mov x0,109 mov x0,110 mov x0,111 mov x0,112 mov x0,113 mov x0,114 mov x0,115 mov x0,116 mov x0,117 mov x0,118 mov x0,119 mov x0,120 mov x0,121 mov x0,122 mov x0,123 mov x0,124 mov x0,125 mov x0,126 mov x0,127 mov x0,128 mov x0,255 mov x0,256 mov x0,384 mov x0,512 mov x0,577 mov x0,1024 mov x0,4096 mov x0,65536 mov x0,262144 ``` ``` main: file format elf64-littleaarch64 Disassembly of section .text: 0000000000400078 <_start>: 400078: d2800020 mov x0, #0x1 // oriansj#1 40007c: d2800040 mov x0, #0x2 // oriansj#2 400080: d2800060 mov x0, #0x3 // oriansj#3 400084: d2800080 mov x0, #0x4 // oriansj#4 400088: d28000a0 mov x0, #0x5 // oriansj#5 40008c: d28000c0 mov x0, #0x6 // oriansj#6 400090: d28000e0 mov x0, #0x7 // oriansj#7 400094: d2800100 mov x0, #0x8 // oriansj#8 400098: d2800120 mov x0, #0x9 // oriansj#9 40009c: d2800140 mov x0, #0xa // oriansj#10 4000a0: d2800160 mov x0, #0xb // oriansj#11 4000a4: d2800180 mov x0, #0xc // oriansj#12 4000a8: d28001a0 mov x0, #0xd // oriansj#13 4000ac: d28001c0 mov x0, #0xe // oriansj#14 4000b0: d28001e0 mov x0, #0xf // oriansj#15 4000b4: d2800200 mov x0, #0x10 // oriansj#16 4000b8: d2800220 mov x0, #0x11 // oriansj#17 4000bc: d2800240 mov x0, #0x12 // oriansj#18 4000c0: d2800260 mov x0, #0x13 // oriansj#19 4000c4: d2800280 mov x0, #0x14 // oriansj#20 4000c8: d28002a0 mov x0, #0x15 // oriansj#21 4000cc: d28002c0 mov x0, #0x16 // oriansj#22 4000d0: d28002e0 mov x0, #0x17 // oriansj#23 4000d4: d2800300 mov x0, #0x18 // oriansj#24 4000d8: d2800320 mov x0, #0x19 // oriansj#25 4000dc: d2800340 mov x0, #0x1a // oriansj#26 4000e0: d2800360 mov x0, #0x1b // oriansj#27 4000e4: d2800380 mov x0, #0x1c // oriansj#28 4000e8: d28003a0 mov x0, #0x1d // oriansj#29 4000ec: d28003c0 mov x0, #0x1e // oriansj#30 4000f0: d28003e0 mov x0, #0x1f // oriansj#31 4000f4: d2800400 mov x0, #0x20 // oriansj#32 4000f8: d2800420 mov x0, #0x21 // oriansj#33 4000fc: d2800440 mov x0, #0x22 // oriansj#34 400100: d2800460 mov x0, #0x23 // oriansj#35 400104: d2800480 mov x0, #0x24 // oriansj#36 400108: d28004a0 mov x0, #0x25 // oriansj#37 40010c: d28004c0 mov x0, #0x26 // oriansj#38 400110: d28004e0 mov x0, #0x27 // oriansj#39 400114: d2800500 mov x0, #0x28 // oriansj#40 400118: d2800520 mov x0, #0x29 // oriansj#41 40011c: d2800540 mov x0, #0x2a // oriansj#42 400120: d2800560 mov x0, #0x2b // oriansj#43 400124: d2800580 mov x0, #0x2c // oriansj#44 400128: d28005a0 mov x0, #0x2d // oriansj#45 40012c: d28005c0 mov x0, #0x2e // oriansj#46 400130: d28005e0 mov x0, #0x2f // oriansj#47 400134: d2800600 mov x0, #0x30 // oriansj#48 400138: d2800620 mov x0, #0x31 // oriansj#49 40013c: d2800640 mov x0, #0x32 // oriansj#50 400140: d2800660 mov x0, #0x33 // oriansj#51 400144: d2800680 mov x0, #0x34 // oriansj#52 400148: d28006a0 mov x0, #0x35 // oriansj#53 40014c: d28006c0 mov x0, #0x36 // oriansj#54 400150: d28006e0 mov x0, #0x37 // oriansj#55 400154: d2800700 mov x0, #0x38 // oriansj#56 400158: d2800720 mov x0, #0x39 // oriansj#57 40015c: d2800740 mov x0, #0x3a // oriansj#58 400160: d2800760 mov x0, #0x3b // oriansj#59 400164: d2800780 mov x0, #0x3c // oriansj#60 400168: d28007a0 mov x0, #0x3d // oriansj#61 40016c: d28007c0 mov x0, #0x3e // oriansj#62 400170: d28007e0 mov x0, #0x3f // oriansj#63 400174: d2800800 mov x0, #0x40 // oriansj#64 400178: d2800820 mov x0, #0x41 // oriansj#65 40017c: d2800840 mov x0, #0x42 // oriansj#66 400180: d2800860 mov x0, #0x43 // oriansj#67 400184: d2800880 mov x0, #0x44 // oriansj#68 400188: d28008a0 mov x0, #0x45 // oriansj#69 40018c: d28008c0 mov x0, #0x46 // oriansj#70 400190: d28008e0 mov x0, #0x47 // oriansj#71 400194: d2800900 mov x0, #0x48 // oriansj#72 400198: d2800920 mov x0, #0x49 // oriansj#73 40019c: d2800940 mov x0, #0x4a // oriansj#74 4001a0: d2800960 mov x0, #0x4b // oriansj#75 4001a4: d2800980 mov x0, #0x4c // oriansj#76 4001a8: d28009a0 mov x0, #0x4d // oriansj#77 4001ac: d28009c0 mov x0, #0x4e // oriansj#78 4001b0: d28009e0 mov x0, #0x4f // oriansj#79 4001b4: d2800a00 mov x0, #0x50 // oriansj#80 4001b8: d2800a20 mov x0, #0x51 // oriansj#81 4001bc: d2800a40 mov x0, #0x52 // oriansj#82 4001c0: d2800a60 mov x0, #0x53 // oriansj#83 4001c4: d2800a80 mov x0, #0x54 // oriansj#84 4001c8: d2800aa0 mov x0, #0x55 // oriansj#85 4001cc: d2800ac0 mov x0, #0x56 // oriansj#86 4001d0: d2800ae0 mov x0, #0x57 // oriansj#87 4001d4: d2800b00 mov x0, #0x58 // oriansj#88 4001d8: d2800b20 mov x0, #0x59 // oriansj#89 4001dc: d2800b40 mov x0, #0x5a // oriansj#90 4001e0: d2800b60 mov x0, #0x5b // oriansj#91 4001e4: d2800b80 mov x0, #0x5c // oriansj#92 4001e8: d2800ba0 mov x0, #0x5d // oriansj#93 4001ec: d2800bc0 mov x0, #0x5e // oriansj#94 4001f0: d2800be0 mov x0, #0x5f // oriansj#95 4001f4: d2800c00 mov x0, #0x60 // oriansj#96 4001f8: d2800c20 mov x0, #0x61 // oriansj#97 4001fc: d2800c40 mov x0, #0x62 // oriansj#98 400200: d2800c60 mov x0, #0x63 // oriansj#99 400204: d2800c80 mov x0, #0x64 // oriansj#100 400208: d2800ca0 mov x0, #0x65 // oriansj#101 40020c: d2800cc0 mov x0, #0x66 // oriansj#102 400210: d2800ce0 mov x0, #0x67 // oriansj#103 400214: d2800d00 mov x0, #0x68 // oriansj#104 400218: d2800d20 mov x0, #0x69 // oriansj#105 40021c: d2800d40 mov x0, #0x6a // oriansj#106 400220: d2800d60 mov x0, #0x6b // oriansj#107 400224: d2800d80 mov x0, #0x6c // oriansj#108 400228: d2800da0 mov x0, #0x6d // #109 40022c: d2800dc0 mov x0, #0x6e // #110 400230: d2800de0 mov x0, #0x6f // #111 400234: d2800e00 mov x0, #0x70 // #112 400238: d2800e20 mov x0, #0x71 // #113 40023c: d2800e40 mov x0, #0x72 // #114 400240: d2800e60 mov x0, #0x73 // #115 400244: d2800e80 mov x0, #0x74 // #116 400248: d2800ea0 mov x0, #0x75 // #117 40024c: d2800ec0 mov x0, #0x76 // #118 400250: d2800ee0 mov x0, #0x77 // #119 400254: d2800f00 mov x0, #0x78 // #120 400258: d2800f20 mov x0, #0x79 // #121 40025c: d2800f40 mov x0, #0x7a // #122 400260: d2800f60 mov x0, #0x7b // #123 400264: d2800f80 mov x0, #0x7c // #124 400268: d2800fa0 mov x0, #0x7d // #125 40026c: d2800fc0 mov x0, #0x7e // #126 400270: d2800fe0 mov x0, #0x7f // #127 400274: d2801000 mov x0, #0x80 // #128 400278: d2801fe0 mov x0, #0xff // #255 40027c: d2802000 mov x0, #0x100 // #256 400280: d2803000 mov x0, #0x180 // #384 400284: d2804000 mov x0, #0x200 // #512 400288: d2804820 mov x0, #0x241 // #577 40028c: d2808000 mov x0, #0x400 // #1024 400290: d2820000 mov x0, #0x1000 // #4096 400294: d2a00020 mov x0, #0x10000 // #65536 400298: d2a00080 mov x0, #0x40000 // #262144 ```
gtker
added a commit
to gtker/M2libc
that referenced
this pull request
Oct 27, 2025
``` .global _start _start: mov x0,1 mov x0,2 mov x0,3 mov x0,4 mov x0,5 mov x0,6 mov x0,7 mov x0,8 mov x0,9 mov x0,10 mov x0,11 mov x0,12 mov x0,13 mov x0,14 mov x0,15 mov x0,16 mov x0,17 mov x0,18 mov x0,19 mov x0,20 mov x0,21 mov x0,22 mov x0,23 mov x0,24 mov x0,25 mov x0,26 mov x0,27 mov x0,28 mov x0,29 mov x0,30 mov x0,31 mov x0,32 mov x0,33 mov x0,34 mov x0,35 mov x0,36 mov x0,37 mov x0,38 mov x0,39 mov x0,40 mov x0,41 mov x0,42 mov x0,43 mov x0,44 mov x0,45 mov x0,46 mov x0,47 mov x0,48 mov x0,49 mov x0,50 mov x0,51 mov x0,52 mov x0,53 mov x0,54 mov x0,55 mov x0,56 mov x0,57 mov x0,58 mov x0,59 mov x0,60 mov x0,61 mov x0,62 mov x0,63 mov x0,64 mov x0,65 mov x0,66 mov x0,67 mov x0,68 mov x0,69 mov x0,70 mov x0,71 mov x0,72 mov x0,73 mov x0,74 mov x0,75 mov x0,76 mov x0,77 mov x0,78 mov x0,79 mov x0,80 mov x0,81 mov x0,82 mov x0,83 mov x0,84 mov x0,85 mov x0,86 mov x0,87 mov x0,88 mov x0,89 mov x0,90 mov x0,91 mov x0,92 mov x0,93 mov x0,94 mov x0,95 mov x0,96 mov x0,97 mov x0,98 mov x0,99 mov x0,100 mov x0,101 mov x0,102 mov x0,103 mov x0,104 mov x0,105 mov x0,106 mov x0,107 mov x0,108 mov x0,109 mov x0,110 mov x0,111 mov x0,112 mov x0,113 mov x0,114 mov x0,115 mov x0,116 mov x0,117 mov x0,118 mov x0,119 mov x0,120 mov x0,121 mov x0,122 mov x0,123 mov x0,124 mov x0,125 mov x0,126 mov x0,127 mov x0,128 mov x0,255 mov x0,256 mov x0,384 mov x0,512 mov x0,577 mov x0,1024 mov x0,4096 mov x0,65536 mov x0,262144 ``` ``` main: file format elf64-littleaarch64 Disassembly of section .text: 0000000000400078 <_start>: 400078: d2800020 mov x0, #0x1 // oriansj#1 40007c: d2800040 mov x0, #0x2 // oriansj#2 400080: d2800060 mov x0, #0x3 // oriansj#3 400084: d2800080 mov x0, #0x4 // oriansj#4 400088: d28000a0 mov x0, #0x5 // oriansj#5 40008c: d28000c0 mov x0, #0x6 // oriansj#6 400090: d28000e0 mov x0, #0x7 // oriansj#7 400094: d2800100 mov x0, #0x8 // oriansj#8 400098: d2800120 mov x0, #0x9 // oriansj#9 40009c: d2800140 mov x0, #0xa // oriansj#10 4000a0: d2800160 mov x0, #0xb // oriansj#11 4000a4: d2800180 mov x0, #0xc // oriansj#12 4000a8: d28001a0 mov x0, #0xd // oriansj#13 4000ac: d28001c0 mov x0, #0xe // oriansj#14 4000b0: d28001e0 mov x0, #0xf // oriansj#15 4000b4: d2800200 mov x0, #0x10 // oriansj#16 4000b8: d2800220 mov x0, #0x11 // oriansj#17 4000bc: d2800240 mov x0, #0x12 // oriansj#18 4000c0: d2800260 mov x0, #0x13 // oriansj#19 4000c4: d2800280 mov x0, #0x14 // oriansj#20 4000c8: d28002a0 mov x0, #0x15 // oriansj#21 4000cc: d28002c0 mov x0, #0x16 // oriansj#22 4000d0: d28002e0 mov x0, #0x17 // oriansj#23 4000d4: d2800300 mov x0, #0x18 // oriansj#24 4000d8: d2800320 mov x0, #0x19 // oriansj#25 4000dc: d2800340 mov x0, #0x1a // oriansj#26 4000e0: d2800360 mov x0, #0x1b // oriansj#27 4000e4: d2800380 mov x0, #0x1c // oriansj#28 4000e8: d28003a0 mov x0, #0x1d // oriansj#29 4000ec: d28003c0 mov x0, #0x1e // oriansj#30 4000f0: d28003e0 mov x0, #0x1f // oriansj#31 4000f4: d2800400 mov x0, #0x20 // oriansj#32 4000f8: d2800420 mov x0, #0x21 // oriansj#33 4000fc: d2800440 mov x0, #0x22 // oriansj#34 400100: d2800460 mov x0, #0x23 // oriansj#35 400104: d2800480 mov x0, #0x24 // oriansj#36 400108: d28004a0 mov x0, #0x25 // oriansj#37 40010c: d28004c0 mov x0, #0x26 // oriansj#38 400110: d28004e0 mov x0, #0x27 // oriansj#39 400114: d2800500 mov x0, #0x28 // oriansj#40 400118: d2800520 mov x0, #0x29 // oriansj#41 40011c: d2800540 mov x0, #0x2a // oriansj#42 400120: d2800560 mov x0, #0x2b // oriansj#43 400124: d2800580 mov x0, #0x2c // oriansj#44 400128: d28005a0 mov x0, #0x2d // oriansj#45 40012c: d28005c0 mov x0, #0x2e // oriansj#46 400130: d28005e0 mov x0, #0x2f // oriansj#47 400134: d2800600 mov x0, #0x30 // oriansj#48 400138: d2800620 mov x0, #0x31 // oriansj#49 40013c: d2800640 mov x0, #0x32 // oriansj#50 400140: d2800660 mov x0, #0x33 // oriansj#51 400144: d2800680 mov x0, #0x34 // oriansj#52 400148: d28006a0 mov x0, #0x35 // oriansj#53 40014c: d28006c0 mov x0, #0x36 // oriansj#54 400150: d28006e0 mov x0, #0x37 // oriansj#55 400154: d2800700 mov x0, #0x38 // oriansj#56 400158: d2800720 mov x0, #0x39 // oriansj#57 40015c: d2800740 mov x0, #0x3a // oriansj#58 400160: d2800760 mov x0, #0x3b // oriansj#59 400164: d2800780 mov x0, #0x3c // oriansj#60 400168: d28007a0 mov x0, #0x3d // oriansj#61 40016c: d28007c0 mov x0, #0x3e // oriansj#62 400170: d28007e0 mov x0, #0x3f // oriansj#63 400174: d2800800 mov x0, #0x40 // oriansj#64 400178: d2800820 mov x0, #0x41 // oriansj#65 40017c: d2800840 mov x0, #0x42 // oriansj#66 400180: d2800860 mov x0, #0x43 // oriansj#67 400184: d2800880 mov x0, #0x44 // oriansj#68 400188: d28008a0 mov x0, #0x45 // oriansj#69 40018c: d28008c0 mov x0, #0x46 // oriansj#70 400190: d28008e0 mov x0, #0x47 // oriansj#71 400194: d2800900 mov x0, #0x48 // oriansj#72 400198: d2800920 mov x0, #0x49 // oriansj#73 40019c: d2800940 mov x0, #0x4a // oriansj#74 4001a0: d2800960 mov x0, #0x4b // oriansj#75 4001a4: d2800980 mov x0, #0x4c // oriansj#76 4001a8: d28009a0 mov x0, #0x4d // oriansj#77 4001ac: d28009c0 mov x0, #0x4e // oriansj#78 4001b0: d28009e0 mov x0, #0x4f // oriansj#79 4001b4: d2800a00 mov x0, #0x50 // oriansj#80 4001b8: d2800a20 mov x0, #0x51 // oriansj#81 4001bc: d2800a40 mov x0, #0x52 // oriansj#82 4001c0: d2800a60 mov x0, #0x53 // oriansj#83 4001c4: d2800a80 mov x0, #0x54 // oriansj#84 4001c8: d2800aa0 mov x0, #0x55 // oriansj#85 4001cc: d2800ac0 mov x0, #0x56 // oriansj#86 4001d0: d2800ae0 mov x0, #0x57 // oriansj#87 4001d4: d2800b00 mov x0, #0x58 // oriansj#88 4001d8: d2800b20 mov x0, #0x59 // oriansj#89 4001dc: d2800b40 mov x0, #0x5a // oriansj#90 4001e0: d2800b60 mov x0, #0x5b // oriansj#91 4001e4: d2800b80 mov x0, #0x5c // oriansj#92 4001e8: d2800ba0 mov x0, #0x5d // oriansj#93 4001ec: d2800bc0 mov x0, #0x5e // oriansj#94 4001f0: d2800be0 mov x0, #0x5f // oriansj#95 4001f4: d2800c00 mov x0, #0x60 // oriansj#96 4001f8: d2800c20 mov x0, #0x61 // oriansj#97 4001fc: d2800c40 mov x0, #0x62 // oriansj#98 400200: d2800c60 mov x0, #0x63 // oriansj#99 400204: d2800c80 mov x0, #0x64 // oriansj#100 400208: d2800ca0 mov x0, #0x65 // oriansj#101 40020c: d2800cc0 mov x0, #0x66 // oriansj#102 400210: d2800ce0 mov x0, #0x67 // oriansj#103 400214: d2800d00 mov x0, #0x68 // oriansj#104 400218: d2800d20 mov x0, #0x69 // oriansj#105 40021c: d2800d40 mov x0, #0x6a // oriansj#106 400220: d2800d60 mov x0, #0x6b // oriansj#107 400224: d2800d80 mov x0, #0x6c // oriansj#108 400228: d2800da0 mov x0, #0x6d // #109 40022c: d2800dc0 mov x0, #0x6e // #110 400230: d2800de0 mov x0, #0x6f // #111 400234: d2800e00 mov x0, #0x70 // #112 400238: d2800e20 mov x0, #0x71 // #113 40023c: d2800e40 mov x0, #0x72 // #114 400240: d2800e60 mov x0, #0x73 // #115 400244: d2800e80 mov x0, #0x74 // #116 400248: d2800ea0 mov x0, #0x75 // #117 40024c: d2800ec0 mov x0, #0x76 // #118 400250: d2800ee0 mov x0, #0x77 // #119 400254: d2800f00 mov x0, #0x78 // #120 400258: d2800f20 mov x0, #0x79 // #121 40025c: d2800f40 mov x0, #0x7a // #122 400260: d2800f60 mov x0, #0x7b // #123 400264: d2800f80 mov x0, #0x7c // #124 400268: d2800fa0 mov x0, #0x7d // #125 40026c: d2800fc0 mov x0, #0x7e // #126 400270: d2800fe0 mov x0, #0x7f // #127 400274: d2801000 mov x0, #0x80 // #128 400278: d2801fe0 mov x0, #0xff // #255 40027c: d2802000 mov x0, #0x100 // #256 400280: d2803000 mov x0, #0x180 // #384 400284: d2804000 mov x0, #0x200 // #512 400288: d2804820 mov x0, #0x241 // #577 40028c: d2808000 mov x0, #0x400 // #1024 400290: d2820000 mov x0, #0x1000 // #4096 400294: d2a00020 mov x0, #0x10000 // #65536 400298: d2a00080 mov x0, #0x40000 // #262144 ```
stikonas
approved these changes
Oct 27, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As discussed on IRC.
This means that users must now include the arch specific .c file first and then the general bootstrap.c.
This should make it way easier to maintain the existing architectures and potentially add new ones later.
knight-native can not be treated like this since it doesn't have read/write syscalls, only fputc/fgetc.
oriansj/M2-Planet#160 shows the minor changes necessary in M2-Planet.
@stikonas @oriansj