From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, FROM_LOCAL_NOVOWEL,HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: from second.openwall.net (second.openwall.net [193.110.157.125]) by inbox.vuxu.org (Postfix) with SMTP id 4F90F24EA2 for ; Thu, 28 Mar 2024 21:04:17 +0100 (CET) Received: (qmail 22380 invoked by uid 550); 28 Mar 2024 19:59:08 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 22298 invoked from network); 28 Mar 2024 19:59:08 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711656229; x=1712261029; darn=lists.openwall.com; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OY/tZZLvE/4p1DQglxH8Qh1eqxlkEIhRT2IGQhmaRP0=; b=GFavnE/brzSPz+1P2oqnC5MSlZK4C8wOJyjZVqcgq7CfHEr8yYNA1Y2ug22b1ahh2A dYPsHAH7lZnpH+PTBfVjFx5HnasmI3A2G6ZqL2uWzVG+npqVkjv97Vs7dRjg8rrYbFMW d8ymbplKAvaZgYKiJ2mycfr+3+0+WNgwmG7/hXwAoAZobsXdxJ0uYyGT1YZifIu7u+yY INh9pE1B+R8Aojgq2mLNVuPWNVaic7Svohs6Wzw8U0yMOY+VSej/REM6lo0eOwTIeToj OdNJuxEchU+FVLNUFVxMOwrWN0fwiz8XFPkEbPkBFlfqbkqQi8Zgs8Xke7sBJucEX+df fc0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711656229; x=1712261029; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OY/tZZLvE/4p1DQglxH8Qh1eqxlkEIhRT2IGQhmaRP0=; b=RB1NdOlTbWXdWJYqE31Op0gv7uQWEzY7zi0ptUtWhYd43+4ObEkGgskUG3pFPOKfeR oR0sBy63/CF0h+I8iba9cxDSIzRwfrQZHACp3vG2erqF9LIr9pJ28MjH+LoUQXjlIa/e sdeq+Iyu7TUQOG1a0mCGwq9Cc3b6aTWHmPC3tru26rsWdyaL2eWOfqrnWIfgk374uLyn YVx4mOOa/DSEjpaQoWz9zJ3zpbAUhdO3QuBmFiJYfpJILN+tVPeJzBbONZnKKSeSHY1h maX8NikEC6HuQdRpDrnFWFmLjv/FAIavlrCb+rNnnwspZmKNnKEinNAvoQmZMNKuxKfU +RWg== X-Gm-Message-State: AOJu0Yyrj7RE/S1/KjhA1VTkxB6sydSe5FXaV54/pRLi2axQOp2C3LLK voBC0k3oDlnkDdWcc2eUybvvY1wb194+BSDM+V/eqlyYXXAttkbL4DYAXGHl X-Google-Smtp-Source: AGHT+IF7rWOyQgY5JCrqal9W//U2GZGOH5//nTMcs3JqKSsyT/zBNEjVjRCnGbTga7oflLcWuGWHFQ== X-Received: by 2002:a05:6a00:1d87:b0:6ea:ba02:b44a with SMTP id z7-20020a056a001d8700b006eaba02b44amr351198pfw.10.1711656228827; Thu, 28 Mar 2024 13:03:48 -0700 (PDT) From: Max Filippov To: musl@lists.openwall.com Cc: Rich Felker , Max Filippov Date: Thu, 28 Mar 2024 13:03:19 -0700 Message-Id: <20240328200319.4016902-3-jcmvbkbc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240328200319.4016902-1-jcmvbkbc@gmail.com> References: <20240328200319.4016902-1-jcmvbkbc@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [musl] [RFC v2 2/2] WIP xtensa bits Signed-off-by: Max Filippov --- ldso/dlstart.c | 3 +++ ldso/dynlink.c | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ldso/dlstart.c b/ldso/dlstart.c index 259f5e18eecf..a1c257860e96 100644 --- a/ldso/dlstart.c +++ b/ldso/dlstart.c @@ -96,6 +96,9 @@ hidden void _dlstart_c(size_t *sp, size_t *dynv) *rel_addr = rel[2] + segs[j].addr - segs[j].p_vaddr + val; } } +#ifdef __xtensa__ + ((unsigned long *)dyn[DT_PLTGOT])[3] = segs[0].addr - segs[0].p_vaddr; +#endif #else /* If the dynamic linker is invoked as a command, its load * address is not available in the aux vector. Instead, compute diff --git a/ldso/dynlink.c b/ldso/dynlink.c index 324aa85919f0..9be79c8f8227 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -402,7 +402,11 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri reuse_addends = 1; skip_relative = 1; } - +#ifdef __xtensa__ + else { + dso->got[3] = dso->loadmap->segs[0].addr - dso->loadmap->segs[0].p_vaddr; + } +#endif for (; rel_size; rel+=stride, rel_size-=stride*sizeof(size_t)) { if (skip_relative && IS_RELATIVE(rel[1], dso->syms)) continue; type = R_TYPE(rel[1]); @@ -1422,6 +1426,7 @@ static void reloc_all(struct dso *p) if (!DL_FDPIC) do_relr_relocs(p, laddr(p, dyn[DT_RELR]), dyn[DT_RELRSZ]); +#if 0 if (head != &ldso && p->relro_start != p->relro_end) { long ret = __syscall(SYS_mprotect, laddr(p, p->relro_start), p->relro_end-p->relro_start, PROT_READ); @@ -1431,6 +1436,7 @@ static void reloc_all(struct dso *p) if (runtime) longjmp(*rtld_fail, 1); } } +#endif p->relocated = 1; } -- 2.39.2