libgloss: pru: Trim crt0-minrt.o
Strip a few more instructions from crt0-minrt.S: - Remove "halt" and rely on the infinite loop after main()'s return. - Remove main()'s argc and argv argument initialization. Host loader does not set them, and typical firmware does not use them, either. - Remove the __dso_handle symbol. This should be safe because the default crt0.S is fully standards compliant. Whereas crt0-minrt.S has been documented from the beginning to intentionally miss features in order to reduce firmware size, while still enabling typical PRU firmware to operate. Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
This commit is contained in:
parent
d5c4edca81
commit
276dd12f69
|
@ -38,22 +38,9 @@ _start:
|
|||
|
||||
/* DATA and BSS are handled by the loader, so nothing to do here. */
|
||||
|
||||
/* Just in case main() tries to access argc, argv[] and envp. */
|
||||
zero r14, 3 * 4
|
||||
|
||||
/* Call main. */
|
||||
/* Call main. Assume argc and argv are not used with -minrt! */
|
||||
call main
|
||||
|
||||
/* We should never reach here. */
|
||||
_crt_exit:
|
||||
halt
|
||||
jmp _crt_exit
|
||||
|
||||
/* PRU obviously has no shared libraries, but dso_handle
|
||||
helps to achieve better GCC test coverage. Besides,
|
||||
it should be free with minrt. */
|
||||
.section .data
|
||||
.global __dso_handle
|
||||
.weak __dso_handle
|
||||
__dso_handle:
|
||||
.long 0
|
||||
|
|
Loading…
Reference in New Issue