The unpac monorepo manager self-hosting as a monorepo using unpac
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #13496 from dra27/ld-warning

Silence ld warning with libasmrun_shared.so

authored by

Sébastien Hinderer and committed by
GitHub
718a664b 06b92126

+39 -11
+5
Changes
··· 30 30 entries found in ld.conf. 31 31 (David Allsopp, review by Stephen Dolan) 32 32 33 + - #13496: Add missing .type and .size directives to main frametable to silence 34 + warnings from the linker when using libasmrun_shared on amd64 and power. The 35 + other backends already carried these directives. 36 + (David Allsopp, review by Tim McGilchrist and Miod Vallat) 37 + 33 38 - #13500: Add frame pointers support for ARM64 on Linux and macOS. 34 39 (Tim McGilchrist, review by KC Sivaramakrishnan, Fabrice Buoro 35 40 and Miod Vallat)
+11 -3
runtime/amd64.S
··· 74 74 75 75 #endif 76 76 77 + #define OBJECT(name) \ 78 + .globl name; \ 79 + .align EIGHT_ALIGN; \ 80 + name: 81 + 77 82 #if defined(SYS_linux) || defined(SYS_gnu) 78 83 #define ENDFUNCTION(name) \ 79 84 .size name, . - name 85 + #define ENDOBJECT(name) \ 86 + .type name, @object; \ 87 + .size name, . - name; 80 88 #else 81 89 #define ENDFUNCTION(name) 90 + #define ENDOBJECT(name) 82 91 #endif 83 92 84 93 #include "../runtime/caml/asm.h" ··· 1320 1329 G(caml_system__code_end): 1321 1330 1322 1331 .data 1323 - .globl G(caml_system.frametable) 1324 - .align EIGHT_ALIGN 1325 - G(caml_system.frametable): 1332 + OBJECT(G(caml_system.frametable)) 1326 1333 .quad 2 /* two descriptors */ 1327 1334 .quad LBL(108) /* return address into callback */ 1328 1335 .value -1 /* negative frame size => use callback link */ ··· 1331 1338 .quad LBL(frame_runstack) /* return address into fiber_val_handler */ 1332 1339 .value -1 /* negative frame size => use callback link */ 1333 1340 .value 0 /* no roots here */ 1341 + ENDOBJECT(G(caml_system.frametable)) 1334 1342 1335 1343 #if defined(SYS_macosx) 1336 1344 .literal16
+13 -4
runtime/power.S
··· 96 96 .endm 97 97 98 98 .macro ENDFUNCTION name 99 - .size \name, . - \name 99 + .size \name, . - \name 100 + .endm 101 + 102 + .macro OBJECT name 103 + .globl \name 104 + .type \name, @object 105 + \name: 106 + .endm 107 + 108 + .macro ENDOBJECT name 109 + .size \name, . - \name 100 110 .endm 101 111 102 112 /* Function prologue and epilogue */ ··· 1181 1191 /* Frame table */ 1182 1192 1183 1193 .section ".data" 1184 - .globl caml_system.frametable 1185 - .type caml_system.frametable, @object 1186 - caml_system.frametable: 1194 + OBJECT caml_system.frametable 1187 1195 .quad 2 /* two descriptors */ 1188 1196 .quad .Lcaml_retaddr + 4 /* return address into callback */ 1189 1197 .short -1 /* negative frame size => use callback link */ ··· 1193 1201 .short -1 /* negative frame size => use callback link */ 1194 1202 .short 0 /* no roots here */ 1195 1203 .align 3 1204 + ENDOBJECT caml_system.frametable 1196 1205 1197 1206 /* TOC entries */ 1198 1207
+10 -4
runtime/s390x.S
··· 64 64 65 65 #define ENDFUNCTION(name) 66 66 67 + #define OBJECT(name) \ 68 + .align 8; \ 69 + .globl name; \ 70 + .type name, @object; \ 71 + name: 72 + 73 + #define ENDOBJECT(name) 74 + 67 75 /* Stack space to be reserved by the caller of a C function */ 68 76 #define RESERVED_STACK 160 69 77 ··· 1199 1207 /* Frame table */ 1200 1208 1201 1209 .section ".data" 1202 - .align 8 1203 - .globl caml_system.frametable 1204 - .type caml_system.frametable, @object 1205 - caml_system.frametable: 1210 + OBJECT(caml_system.frametable) 1206 1211 .quad 2 /* two descriptors */ 1207 1212 .quad LBL(caml_retaddr) /* return address into callback */ 1208 1213 .short -1 /* negative size count => use callback link */ ··· 1212 1217 .short -1 /* negative size count => use callback link */ 1213 1218 .short 0 /* no roots here */ 1214 1219 .align 8 1220 + ENDOBJECT(caml_system.frametable) 1215 1221 1216 1222 /* Mark stack as non-executable */ 1217 1223 .section .note.GNU-stack,"",%progbits