History log of /haiku-fatelf/headers/private/kernel/elf_priv.h
Revision Date Author Comments
# 3b802628 09-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Support ELF64 in the kernel.

This has been done by adding typedefs in elf_common.h to the correct ELF
structures for the architecture, and changing all Elf32_* uses to those
types. I don't know whether image loading works as I cannot test it yet,
there may be some 64-bit safety issues around. However, symbol lookup for
the kernel is working correctly.


# f6a34444 24-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Added x86_64 ELF64 relocation functions for the bootloader. All that's left to do now is handle the 64-bit load address properly.


# f1244978 22-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Added an ELF64 version of preloaded_image.

* There is now 2 structures, preloaded_elf32_image and preloaded_elf64_image,
which both inherit from preloaded_image.
* For now I've just hardcoded in use of preloaded_elf32_image, but the
bootloader ELF code will shortly be converted to use templates which use
the appropriate structure. The kernel will be changed later when I add
ELF64 support to it.
* All kernel_args data is now compatible between 32-bit and 64-bit kernels.


# c07db2ec 26-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* elf_find_symbol(): Skip undefined symbols and symbols with the wrong binding.
* Implemented missing handling of symbolically linked images and of weak
symbols.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39646 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bf61a0e 21-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added GNU style ELF symbol versioning support in the kernel, too.
* Fixed memory leak in insert_preloaded_image() in error case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30820 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a1e04b1 13-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Symbol resolution functions in the kernel: Removed the unused parameter
allowing optional prepending of a string to the symbol names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30750 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 80f54692 06-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* struct vnode is an opaque type now, removed void* where it was used incorrectly.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22461 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c14a34a6 26-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Improved kernel ELF loader (and made it more similar to the one from the boot
loader): it now supports holes between segments, and accepts any segment order.
* Renamed elf.c to elf.cpp and fixed warnings.
* Renamed elf_image_info::dynamic_ptr and eheader to dynamic_section and elf_header.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16878 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2705fb7d 08-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Replaced the regions array with the nicer text_region and data_region members.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7877 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ecfed6a7 31-May-2004 Axel Dörfler <axeld@pinc-software.de>

Added fields to hold debug symbol information.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7696 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b6b9a5a 11-May-2004 Axel Dörfler <axeld@pinc-software.de>

Added a comment (now that we're using a hash table).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7523 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 337d1d1b 27-Apr-2004 Axel Dörfler <axeld@pinc-software.de>

Made C++ safe.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1a6f46d 20-Apr-2004 Axel Dörfler <axeld@pinc-software.de>

Removed ktypes.h dependency; replaced "addr" with "addr_t", some other minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e44d4929 16-Oct-2003 Axel Dörfler <axeld@pinc-software.de>

Made it independent.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5043 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 29164895 12-Jan-2003 Axel Dörfler <axeld@pinc-software.de>

Must now include image.h directly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2422 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7fae0705 30-Dec-2002 Axel Dörfler <axeld@pinc-software.de>

Included NewOS change 1674. Moved private elf structures to elf_priv.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b802628b8e2aa14eb4c674d0a8cf900f522baa1 09-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Support ELF64 in the kernel.

This has been done by adding typedefs in elf_common.h to the correct ELF
structures for the architecture, and changing all Elf32_* uses to those
types. I don't know whether image loading works as I cannot test it yet,
there may be some 64-bit safety issues around. However, symbol lookup for
the kernel is working correctly.


# f6a3444449c452a63e0e0d91e8480f39bca81aed 24-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Added x86_64 ELF64 relocation functions for the bootloader. All that's left to do now is handle the 64-bit load address properly.


# f1244978152350f9cc010e766d09c2e9ad34dfce 22-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Added an ELF64 version of preloaded_image.

* There is now 2 structures, preloaded_elf32_image and preloaded_elf64_image,
which both inherit from preloaded_image.
* For now I've just hardcoded in use of preloaded_elf32_image, but the
bootloader ELF code will shortly be converted to use templates which use
the appropriate structure. The kernel will be changed later when I add
ELF64 support to it.
* All kernel_args data is now compatible between 32-bit and 64-bit kernels.


# c07db2ec3f246a20402116d8ac23a8d2f43039e6 26-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* elf_find_symbol(): Skip undefined symbols and symbols with the wrong binding.
* Implemented missing handling of symbolically linked images and of weak
symbols.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39646 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bf61a0eccc21ebe33d90186064ee70c195abab9 21-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added GNU style ELF symbol versioning support in the kernel, too.
* Fixed memory leak in insert_preloaded_image() in error case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30820 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a1e04b121921344eec3e7314fafa8796e14cfaf 13-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Symbol resolution functions in the kernel: Removed the unused parameter
allowing optional prepending of a string to the symbol names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30750 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 80f54692912d728f5780e9d78d7643828edaaa2a 06-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* struct vnode is an opaque type now, removed void* where it was used incorrectly.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22461 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c14a34a65f69bbccfca75a0c9cd44bab21ab25d5 26-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Improved kernel ELF loader (and made it more similar to the one from the boot
loader): it now supports holes between segments, and accepts any segment order.
* Renamed elf.c to elf.cpp and fixed warnings.
* Renamed elf_image_info::dynamic_ptr and eheader to dynamic_section and elf_header.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16878 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2705fb7df0c1ae936e90aa77ce7bf71dc755538e 08-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Replaced the regions array with the nicer text_region and data_region members.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7877 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ecfed6a7189334c3029bc58ecc24a2e899f3394d 31-May-2004 Axel Dörfler <axeld@pinc-software.de>

Added fields to hold debug symbol information.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7696 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b6b9a5afb75ffaef6421c5cefc302eefc6a6a80 11-May-2004 Axel Dörfler <axeld@pinc-software.de>

Added a comment (now that we're using a hash table).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7523 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 337d1d1bab969b812081c0f7744968b8c9a2f687 27-Apr-2004 Axel Dörfler <axeld@pinc-software.de>

Made C++ safe.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1a6f46dc9b3c92e0441c587a17293180adb3e57 20-Apr-2004 Axel Dörfler <axeld@pinc-software.de>

Removed ktypes.h dependency; replaced "addr" with "addr_t", some other minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e44d4929cef636eb25dfc961778bae845ecefce3 16-Oct-2003 Axel Dörfler <axeld@pinc-software.de>

Made it independent.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5043 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 29164895ac245e237a7d85192fe2929cf5e0baa6 12-Jan-2003 Axel Dörfler <axeld@pinc-software.de>

Must now include image.h directly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2422 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7fae0705848dc9c33a32f0e3083354eebe71130f 30-Dec-2002 Axel Dörfler <axeld@pinc-software.de>

Included NewOS change 1674. Moved private elf structures to elf_priv.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2320 a95241bf-73f2-0310-859d-f6bbb57e9c96