summaryrefslogtreecommitdiff
path: root/src/model/reladd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/reladd.c')
-rw-r--r--src/model/reladd.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/model/reladd.c b/src/model/reladd.c
index 41d7cfb..ae7bf52 100644
--- a/src/model/reladd.c
+++ b/src/model/reladd.c
@@ -6,6 +6,7 @@
typedef enum Destsegment {
DS_UNKNOWN,
+ DS_OTHER,
DS_TEXT,
DS_DATA,
} Destsegment;
@@ -14,10 +15,8 @@ typedef enum Destsegment {
static Destsegment destsegment(ElfuScn *ms)
{
if (!(ms->shdr.sh_flags & SHF_ALLOC)) {
- return DS_UNKNOWN;
- }
-
- if (!(ms->shdr.sh_flags & SHF_WRITE)
+ return DS_OTHER;
+ } else if (!(ms->shdr.sh_flags & SHF_WRITE)
&& (ms->shdr.sh_flags & SHF_EXECINSTR)) {
return DS_TEXT;
} else if ((ms->shdr.sh_flags & SHF_WRITE)
@@ -150,8 +149,7 @@ static ElfuScn* insertSection(ElfuElf *me, ElfuElf *mrel, ElfuScn *ms)
newscn->shdr.sh_offset = injOffset;
/* Inject name */
- // TODO
- newscn->shdr.sh_name = 0;
+ newscn->shdr.sh_name = elfu_mInsertScnName(me, "RELADD", elfu_mScnName(mrel, ms));
// TODO: Relocate