crt0: Fix return propogation to exit
authorAlan Cox <alan@linux.intel.com>
Sun, 8 Apr 2018 19:51:21 +0000 (20:51 +0100)
committerAlan Cox <alan@linux.intel.com>
Sun, 8 Apr 2018 19:51:21 +0000 (20:51 +0100)
Reported by David Given

Library/libs/crt0.s
Library/libs/crt0_68000.S
Library/libs/crt0nostdio.s
Library/libs/crt0nostdio_68000.S

index b0ffdcd..0d4e303 100644 (file)
@@ -69,9 +69,9 @@ start2:               ld hl, #l__DATA - 1      ; work around linker limit
                push hl
                ld (___argv), hl        ; needed for stuff like err()
                push de
-               ld hl, #_exit           ; return vector
+               call _main              ; go
                push hl
-               jp _main                ; go
+               call _exit
 
                .area _GSINIT
 ;
index aba2306..ce04f07 100644 (file)
@@ -17,5 +17,5 @@ _start:
        move.l a0,environ
        move.l 4(sp),__argv
        jsr main
-       moveq #0,d0
-       jmp _exit
+       move.l d0,-(sp)
+       jsr _exit
index 288e2a8..dd3c34a 100644 (file)
@@ -68,9 +68,9 @@ start2:               ld hl, #l__DATA - 1      ; work around linker limit
                push hl
                ld (___argv), hl        ; needed for stuff like err()
                push de
-               ld hl, #_exit           ; return vector
+               call _main              ; go
                push hl
-               jp _main                ; go
+               call _exit
 
                .area _GSINIT
 gsinit:
index 0ab014d..3eeeccc 100644 (file)
@@ -16,6 +16,6 @@ _start:
        move.l a0,environ
        move.l 4(sp),__argv
        jsr main
-       moveq #0,d0
-       jmp _exit
+       move.l,d0,-(sp)
+       call _exit