refactor(libc): remove non-std link.h

This commit is contained in:
boykopovar 2026-09-06 12:51:24 +03:00
parent 4fd128a40d
commit c8391bfb67
3 changed files with 34 additions and 2 deletions

View File

@ -0,0 +1,32 @@
#ifndef PRX_LIBC_INCLUDE_SPECIFICS_LINUX_ELFTYPES_HPP
#define PRX_LIBC_INCLUDE_SPECIFICS_LINUX_ELFTYPES_HPP
#include <cstdint>
#include <cstddef>
struct Elf64_Phdr {
std::uint32_t p_type;
std::uint32_t p_flags;
std::uint64_t p_offset;
std::uint64_t p_vaddr;
std::uint64_t p_paddr;
std::uint64_t p_filesz;
std::uint64_t p_memsz;
std::uint64_t p_align;
};
struct dl_phdr_info {
std::uintptr_t dlpi_addr;
const char* dlpi_name;
const Elf64_Phdr* dlpi_phdr;
std::uint16_t dlpi_phnum;
};
static constexpr std::uint32_t PT_LOAD = 1;
static constexpr std::uint32_t PT_GNU_EH_FRAME = 0x6474e550;
static constexpr std::uint32_t PF_X = 1;
static constexpr std::uint32_t PF_W = 2;
extern "C" int dl_iterate_phdr(int (*callback)(dl_phdr_info*, std::size_t, void*), void* data);
#endif

View File

@ -1,6 +1,6 @@
#include "prx/libc/include/exceptions/Unwind.hpp"
#include "prx/libc/include/specifics/linux/ElfTypes.hpp"
#include "prx/libc/src/specifics/x86_64/RegisterContext.cpp"
#include <link.h>
namespace LibcUnwind {
struct Lookup { Word pc; const Byte* fde {}; Word text {}; Word data {}; };

View File

@ -1,4 +1,4 @@
#include <link.h>
#include "prx/libc/include/specifics/linux/ElfTypes.hpp"
#include <cstddef>
extern "C" {