Changeset 41696 in vbox for trunk/src/VBox/Additions
- Timestamp:
- Jun 14, 2012 9:12:58 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuest/solaris/deps.s
r41683 r41696 1 ; Solaris kernel modules use non-standard ELF constructions to express inter- 2 ; module dependencies, namely a DT_NEEDED tag inside a relocatable ELF file. 3 ; The Solaris linker can generate these automatically; since yasm can't 4 ; produce an ELF file which quite fits Solaris's requirements we create one 5 ; manually using flat binary output format. 1 ; $Id$ 2 ;; @file 3 ; Solaris kernel module dependency 6 4 ; 7 ;; @todo Generate this.8 5 9 BITS 64 6 ; 7 ; Copyright (C) 2012 Oracle Corporation 8 ; 9 ; This file is part of VirtualBox Open Source Edition (OSE), as 10 ; available from http://www.virtualbox.org. This file is free software; 11 ; you can redistribute it and/or modify it under the terms of the GNU 12 ; General Public License (GPL) as published by the Free Software 13 ; Foundation, in version 2 as it comes in the "COPYING" file of the 14 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 15 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 16 ; 10 17 11 elf_hdr: ; elf64_hdr structure 12 db 7fh, "ELF" ; e_ident 13 dd 010102h, 0, 0 ; e_ident 14 dw 1 ; e_type ET_REL 15 dw 62 ; e_machine EM_X86_64 16 dd 1 ; e_version EV_CURRENT 17 dq 0 ; e_entry 18 dq 0 ; e_phoff 19 dq sect_hdr - $$ ; e_shoff 20 dd 0 ; e_flags 21 dw elf_hsize ; e_ehsize 22 dw 0 ; e_phentsize 23 dw 0 ; e_phnum 24 dw 40h ; e_shentsize 25 dw 4 ; e_shnum 26 dw 1 ; e_shstrndx section .shstrtab 27 elf_hsize equ $ - elf_hdr 18 %include "iprt/solaris/kmoddeps.mac" 28 19 29 sect_hdr: ; elf64_shdr structure 30 times 40h db 0 ; undefined section 20 kmoddeps_header ; ELF header, section table and shared string table 31 21 32 dd str_shstrtab ; sh_name .shstrtab 33 dd 3 ; sh_type SHT_STRTAB 34 dq 20h ; sh_flags SHF_STRINGS 35 dq 0 ; sh_addr 36 dq shstrtab - $$ ; sh_offset 37 dq shstrtab_size ; sh_size 38 dd 0 ; sh_link 39 dd 0 ; sh_info 40 dq 1 ; sh_addralign 41 dq 0 ; sh_entsize 22 kmoddeps_dynstr_start ; ELF .dynstr section 23 kmoddeps_dynstr_string str_misc_ctf, "misc/ctf" 24 kmoddeps_dynstr_end 42 25 43 dd str_dynstr ; sh_name .dynstr 44 dd 3 ; sh_type SHT_STRTAB 45 dq 20h ; sh_flags SHF_STRINGS 46 dq 0 ; sh_addr 47 dq dynstr - $$ ; sh_offset 48 dq dynstr_size ; sh_size 49 dd 0 ; sh_link 50 dd 0 ; sh_info 51 dq 1 ; sh_addralign 52 dq 0 ; sh_entsize 26 kmoddeps_dynamic_start ; ELF .dynamic section 27 kmoddeps_dynamic_needed str_misc_ctf 28 kmoddeps_dynamic_end 53 29 54 dd str_dynamic ; sh_name .dynamic55 dd 6 ; sh_type SHT_DYNAMIC56 dq 1 ; sh_flags SHF_WRITE57 dq 0 ; sh_addr58 dq dynamic - $$ ; sh_offset59 dq dynamic_size ; sh_size60 dd 2 ; sh_link .dynstr61 dd 0 ; sh_info62 dq 8 ; sh_addralign63 dq 0 ; sh_entsize64 65 shstrtab:66 str_shstrtab equ $ - shstrtab67 db ".shstrtab", 068 str_dynstr equ $ - shstrtab69 db ".dynstr", 070 str_dynamic equ $ - shstrtab71 db ".dynamic", 072 shstrtab_size equ $ - shstrtab73 74 dynstr:75 db 076 str_misc_ctf equ $ - dynstr77 db "misc/ctf", 078 dynstr_size equ $ - dynstr79 80 dynamic:81 dd 1, 0 ; DT_NEEDED82 dd str_misc_ctf83 dd 0 ; padding84 dd 1ah, 0 ; DT_FLAGS85 dd 4, 0 ; TEXTREL86 dd 6ffffffbh, 0 ; DT_FLAGS187 dd 0, 088 dd 601900h, 0 ; SUNW_STRPAD89 dd 200h, 090 dd 601b00h, 0 ; SUNW_LDMACH91 dd 0x3e, 092 dd 0, 0, 0, 0 ; padding 593 dd 0, 0, 0, 0 ; padding 694 dd 0, 0, 0, 0 ; padding 795 dd 0, 0, 0, 0 ; padding 896 dd 0, 0, 0, 0 ; padding 997 dd 0, 0, 0, 0 ; padding 1098 dd 0, 0, 0, 0 ; padding 1199 dd 0, 0, 0, 0 ; padding 12100 dd 0, 0, 0, 0 ; padding 13101 dd 0, 0, 0, 0 ; padding 14102 dd 0, 0, 0, 0 ; padding 15103 dynamic_size equ $ - dynamic104
Note:
See TracChangeset
for help on using the changeset viewer.