dllprt0.as 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. .file "crt0.c"
  2. .globl __progname
  3. .section .rodata
  4. .LC0:
  5. .string ""
  6. .data
  7. .align 8
  8. .type __progname, @object
  9. .size __progname, 8
  10. __progname:
  11. .quad .LC0
  12. .text
  13. .p2align 2,0x90
  14. .globl _haltproc
  15. .type _haltproc,@function
  16. _haltproc:
  17. movq $1,%rax
  18. movzwq operatingsystem_result(%rip),%rbx
  19. pushq %rbx
  20. call .Lactualsyscall
  21. addq $8,%rsp
  22. jmp _haltproc
  23. .Lactualsyscall:
  24. int $0x80
  25. jb .LErrorcode
  26. xor %rbx,%rbx
  27. ret
  28. .LErrorcode:
  29. movl %eax, %edi
  30. # This section is needed for NetBSD to recognize a NetBSD binary as such.
  31. # otherwise it will be startup in Linux emulation mode.
  32. .section ".note.netbsd.ident","a"
  33. .p2align 2
  34. .long 7
  35. .long 4
  36. # ELF NOTE TYPE NETBSD TAG
  37. .long 1
  38. .ascii "NetBSD\0\0"
  39. .long 199905
  40. .comm environ,8,8
  41. .comm __progname_storage,256,32
  42. .comm operatingsystem_parameter_envp,8,8
  43. .comm operatingsystem_parameter_argc,8,8
  44. .comm operatingsystem_parameter_argv,8,8