Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200918081004.GG2947641@port70.net>
Date: Fri, 18 Sep 2020 10:10:04 +0200
From: Szabolcs Nagy <nsz@...t70.net>
To: Rich Felker <dalias@...c.org>
Cc: sidneym@...eaurora.org, musl@...ts.openwall.com
Subject: Re: Hexagon DSP support

* Rich Felker <dalias@...c.org> [2020-09-17 21:08:07 -0400]:
> On Thu, Sep 17, 2020 at 05:31:29PM -0500, sidneym@...eaurora.org wrote:
> > > -----Original Message-----
> > > From: 'Rich Felker' <dalias@...c.org>
> > > Sent: Wednesday, September 16, 2020 8:33 PM
> > > To: musl@...ts.openwall.com
> > > Subject: Re: [musl] Hexagon DSP support
> > > 
> > > On Wed, Sep 16, 2020 at 03:49:28PM -0500, sidneym@...eaurora.org wrote:
> > > >
> > > > +__asm__(
> > > > +".section \".note.ABI-tag\", \"a\" \n"
> > > > +".align 4 \n"
> > > > +".long 1f - 0f		/* name length */ \n"
> > > > +".long 3f - 2f		/* data length */ \n"
> > > > +".long  1		/* note type */ \n"
> > > > +"0:	.asciz \"GNU\"	/* vendor name seems like this should be
> > MUSL but
> > > lldb doesn't agree.*/ \n"
> > > > +"1:	.align 4		 \n"
> > > > +"2:	.long 0	/* linux */ \n"
> > > > +"	.long 3,0,0 \n"
> > > > +"3:	.align 4 \n"
> > > > +);
> > > 
> > > Is there a reason this needs to be here at all? Shouldn't the tooling
> > generate
> > > it if it's actually wanted/needed?
> > 
> > OK, this is here so lldb can select the right target allowing the same
> > version of lldb to work in multiple runtime environments. I need to take a
> > look at what the options are if this isn't a good place for this.
> 
> OK, please follow up with what you find. I'm pretty sure this belongs
> in the tooling though (as something the compiler emits or the
> assembler emits based on how it's invoked and what its target is) not
> in a file in libc.

that gnu abi note specifies the minimum supported
kernel version (linux 3.0.0 in this case) and in glibc
it is explicitly added to all glibc dsos and to *crt1.o
(so it depends on the libc not other tooling).

i don't think the debugger should need this unless there
was some linux abi change, in glibc it is used to check
against the runtime kernel version and abort (or fail
dlopen) if that is too old, but musl has no such logic.

see comments about abi note in:
https://sourceware.org/git?p=glibc.git;a=blob;f=csu/abi-note.c
https://sourceware.org/git?p=glibc.git;a=blob;f=abi-tags
see how it is used in dlopen:
https://sourceware.org/git?p=glibc.git;a=blob;f=elf/dl-load.c;h=646c5dca40efcc9ba9f39dbda8b189864792216d;hb=HEAD#l1819

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.