mirror of
https://github.com/rui314/mold.git
synced 2024-12-26 18:02:30 +03:00
wip
This commit is contained in:
parent
ceaab19706
commit
f9f0d90791
6
mold.h
6
mold.h
@ -579,7 +579,7 @@ public:
|
||||
this->name = ".dynamic";
|
||||
this->shdr.sh_type = SHT_DYNAMIC;
|
||||
this->shdr.sh_flags = SHF_ALLOC | SHF_WRITE;
|
||||
this->shdr.sh_addralign = 8;
|
||||
this->shdr.sh_addralign = E::wordsize;
|
||||
this->shdr.sh_entsize = sizeof(ElfDyn<E>);
|
||||
}
|
||||
|
||||
@ -594,7 +594,7 @@ public:
|
||||
this->name = ".symtab";
|
||||
this->shdr.sh_type = SHT_SYMTAB;
|
||||
this->shdr.sh_entsize = sizeof(ElfSym<E>);
|
||||
this->shdr.sh_addralign = 8;
|
||||
this->shdr.sh_addralign = E::wordsize;
|
||||
}
|
||||
|
||||
void update_shdr(Context<E> &ctx) override;
|
||||
@ -759,7 +759,7 @@ public:
|
||||
this->name = ".gnu.version_r";
|
||||
this->shdr.sh_type = SHT_GNU_VERNEED;
|
||||
this->shdr.sh_flags = SHF_ALLOC;
|
||||
this->shdr.sh_addralign = 8;
|
||||
this->shdr.sh_addralign = E::wordsize;
|
||||
}
|
||||
|
||||
void update_shdr(Context<E> &ctx) override;
|
||||
|
@ -119,7 +119,7 @@ std::vector<ElfPhdr<E>> create_phdr(Context<E> &ctx) {
|
||||
};
|
||||
|
||||
// Create a PT_PHDR for the program header itself.
|
||||
define(PT_PHDR, PF_R, 8, ctx.phdr);
|
||||
define(PT_PHDR, PF_R, E::wordsize, ctx.phdr);
|
||||
|
||||
// Create a PT_INTERP.
|
||||
if (ctx.interp)
|
||||
@ -545,7 +545,7 @@ OutputSection<E>::OutputSection(std::string_view name, u32 type, u64 flags)
|
||||
template <typename E>
|
||||
OutputSection<E> *
|
||||
OutputSection<E>::get_instance(std::string_view name, u64 type, u64 flags) {
|
||||
if (name == ".eh_frame" && type == SHT_X86_64_UNWIND)
|
||||
if (E::e_machine == EM_X86_64 && type == SHT_X86_64_UNWIND)
|
||||
type = SHT_PROGBITS;
|
||||
|
||||
name = get_output_name(name);
|
||||
@ -789,6 +789,7 @@ void PltGotSection<E>::copy_buf(Context<E> &ctx) {
|
||||
template <typename E>
|
||||
void RelPltSection<E>::update_shdr(Context<E> &ctx) {
|
||||
this->shdr.sh_link = ctx.dynsym->shndx;
|
||||
this->shdr.sh_info = ctx.gotplt->shndx;
|
||||
}
|
||||
|
||||
template <typename E>
|
||||
|
Loading…
Reference in New Issue
Block a user