Skip to content
This repository has been archived by the owner on Oct 12, 2022. It is now read-only.

Commit

Permalink
core.sys.solaris.sys.link: Move shared ELF values to core.sys.elf
Browse files Browse the repository at this point in the history
  • Loading branch information
ibuclaw authored and dlang-bot committed May 28, 2022
1 parent f89da31 commit fd292b7
Show file tree
Hide file tree
Showing 12 changed files with 107 additions and 266 deletions.
10 changes: 10 additions & 0 deletions src/core/sys/dragonflybsd/sys/elf32.d
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ alias Elf32_Word Elf32_Hashelt;
alias Elf32_Word Elf32_Size;
alias Elf32_Sword Elf32_Ssize;

struct Elf32_Dyn
{
Elf32_Sword d_tag;
union _d_un
{
Elf32_Word d_val;
Elf32_Addr d_ptr;
} _d_un d_un;
}

alias Elf_Note Elf32_Nhdr;

struct Elf32_Cap
Expand Down
10 changes: 10 additions & 0 deletions src/core/sys/dragonflybsd/sys/elf64.d
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ alias Elf64_Word Elf64_Hashelt;
alias Elf64_Xword Elf64_Size;
alias Elf64_Sxword Elf64_Ssize;

struct Elf64_Dyn
{
Elf64_Sxword d_tag;
union _d_un
{
Elf64_Xword d_val;
Elf64_Addr d_ptr;
} _d_un d_un;
}

extern (D) pure
{
auto ELF64_R_TYPE_DATA(I)(I i) { return (cast(Elf64_Xword) i << 32) >> 40; }
Expand Down
20 changes: 0 additions & 20 deletions src/core/sys/elf/package.d
Original file line number Diff line number Diff line change
Expand Up @@ -617,26 +617,6 @@ enum PF_R = (1 << 2);
enum PF_MASKOS = 0x0ff00000;
enum PF_MASKPROC = 0xf0000000;

struct Elf32_Dyn
{
Elf32_Sword d_tag;
union _d_un
{
Elf32_Word d_val;
Elf32_Addr d_ptr;
} _d_un d_un;
}

struct Elf64_Dyn
{
Elf64_Sxword d_tag;
union _d_un
{
Elf64_Xword d_val;
Elf64_Addr d_ptr;
} _d_un d_un;
}

enum DT_NULL = 0;
enum DT_NEEDED = 1;
enum DT_PLTRELSZ = 2;
Expand Down
10 changes: 10 additions & 0 deletions src/core/sys/freebsd/sys/elf32.d
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ alias Elf32_Word Elf32_Hashelt;
alias Elf32_Word Elf32_Size;
alias Elf32_Sword Elf32_Ssize;

struct Elf32_Dyn
{
Elf32_Sword d_tag;
union _d_un
{
Elf32_Word d_val;
Elf32_Addr d_ptr;
} _d_un d_un;
}

alias Elf_Note Elf32_Nhdr;

struct Elf32_Cap
Expand Down
10 changes: 10 additions & 0 deletions src/core/sys/freebsd/sys/elf64.d
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ alias Elf64_Word Elf64_Hashelt;
alias Elf64_Xword Elf64_Size;
alias Elf64_Sxword Elf64_Ssize;

struct Elf64_Dyn
{
Elf64_Sxword d_tag;
union _d_un
{
Elf64_Xword d_val;
Elf64_Addr d_ptr;
} _d_un d_un;
}

extern (D)
{
auto ELF64_R_TYPE_DATA(I)(I i) { return (cast(Elf64_Xword) i << 32) >> 40; }
Expand Down
20 changes: 20 additions & 0 deletions src/core/sys/linux/elf.d
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,26 @@ enum NT_ARM_HW_WATCH = 0x403;

enum NT_VERSION = 1;

struct Elf32_Dyn
{
Elf32_Sword d_tag;
union _d_un
{
Elf32_Word d_val;
Elf32_Addr d_ptr;
} _d_un d_un;
}

struct Elf64_Dyn
{
Elf64_Sxword d_tag;
union _d_un
{
Elf64_Xword d_val;
Elf64_Addr d_ptr;
} _d_un d_un;
}

enum NT_GNU_ABI_TAG = 1;
enum NT_GNU_HWCAP = 2;
enum NT_GNU_BUILD_ID = 3;
Expand Down
10 changes: 10 additions & 0 deletions src/core/sys/netbsd/sys/elf32.d
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ alias Elf32_Word Elf32_Hashelt;
alias Elf32_Word Elf32_Size;
alias Elf32_Sword Elf32_Ssize;

struct Elf32_Dyn
{
Elf32_Sword d_tag;
union _d_un
{
Elf32_Word d_val;
Elf32_Addr d_ptr;
} _d_un d_un;
}

alias Elf_Note Elf32_Nhdr;

struct Elf32_Cap
Expand Down
10 changes: 10 additions & 0 deletions src/core/sys/netbsd/sys/elf64.d
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ alias Elf64_Word Elf64_Hashelt;
alias Elf64_Xword Elf64_Size;
alias Elf64_Sxword Elf64_Ssize;

struct Elf64_Dyn
{
Elf64_Sxword d_tag;
union _d_un
{
Elf64_Xword d_val;
Elf64_Addr d_ptr;
} _d_un d_un;
}

extern (D)
{
auto ELF64_R_TYPE_DATA(I)(I i) { return (cast(Elf64_Xword) i << 32) >> 40; }
Expand Down
10 changes: 10 additions & 0 deletions src/core/sys/openbsd/sys/elf32.d
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ alias Elf32_Word Elf32_Hashelt;
alias Elf32_Word Elf32_Size;
alias Elf32_Sword Elf32_Ssize;

struct Elf32_Dyn
{
Elf32_Sword d_tag;
union _d_un
{
Elf32_Word d_val;
Elf32_Addr d_ptr;
} _d_un d_un;
}

alias Elf_Note Elf32_Nhdr;

struct Elf32_Cap
Expand Down
10 changes: 10 additions & 0 deletions src/core/sys/openbsd/sys/elf64.d
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ alias Elf64_Word Elf64_Hashelt;
alias Elf64_Xword Elf64_Size;
alias Elf64_Sxword Elf64_Ssize;

struct Elf64_Dyn
{
Elf64_Sxword d_tag;
union _d_un
{
Elf64_Xword d_val;
Elf64_Addr d_ptr;
} _d_un d_un;
}

extern (D) pure
{
auto ELF64_R_TYPE_DATA(I)(I i) { return (cast(Elf64_Xword) i << 32) >> 40; }
Expand Down
18 changes: 6 additions & 12 deletions src/core/sys/solaris/sys/elftypes.d
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,12 @@ nothrow:

import core.stdc.stdint;

alias uint32_t Elf32_Addr;
alias uint16_t Elf32_Half;
alias uint32_t Elf32_Off;
alias int32_t Elf32_Sword;
alias uint32_t Elf32_Word;
public import core.sys.elf :
Elf32_Addr, Elf32_Half, Elf32_Off,
Elf32_Sword, Elf32_Word,
Elf64_Addr, Elf64_Half, Elf64_Off,
Elf64_Sword, Elf64_Sxword,
Elf64_Word, Elf64_Xword;

alias uint64_t Elf64_Addr;
alias uint16_t Elf64_Half;
alias uint64_t Elf64_Off;
alias int32_t Elf64_Sword;
alias int64_t Elf64_Sxword;
alias uint32_t Elf64_Word;
alias uint64_t Elf64_Xword;
alias uint64_t Elf64_Lword;
alias uint64_t Elf32_Lword;
Loading

0 comments on commit fd292b7

Please sign in to comment.