mailing list of musl libc
 help / color / mirror / code / Atom feed
* [PATCH] remove stray .end directives
@ 2019-07-02 13:09 Song Fangrui
  2019-07-02 16:58 ` Rich Felker
  0 siblings, 1 reply; 5+ messages in thread
From: Song Fangrui @ 2019-07-02 13:09 UTC (permalink / raw)
  To: musl

[-- Attachment #1: Type: text/plain, Size: 324 bytes --]

This fixes an error when building musl powerpc{32,64} with clang
(it doesn't know GNU as ignores .end arguments):

../src/ldso/powerpc/dlsym.s:8:10: error: unexpected token in '.end' directive
          .end    dlsym

I'm not sure if  .size   dlsym, .-dlsym should also be deleted to be
consistent with other archs.

[-- Attachment #2: musl.patch --]
[-- Type: application/x-patch, Size: 493 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: musl.patch --]
[-- Type: text/x-patch; name="musl.patch", Size: 952 bytes --]

From 1e8f793a4e191dd86c55f47a8e4ef8d76d773c1a Mon Sep 17 00:00:00 2001
From: Fangrui Song <i@maskray.me>
Date: Mon, 1 Jul 2019 09:42:49 +0000
Subject: [PATCH] remove stray .end directives

---
 src/ldso/powerpc/dlsym.s   | 1 -
 src/ldso/powerpc64/dlsym.s | 1 -
 2 files changed, 2 deletions(-)

diff --git a/src/ldso/powerpc/dlsym.s b/src/ldso/powerpc/dlsym.s
index 357d5771..cfe308ef 100644
--- a/src/ldso/powerpc/dlsym.s
+++ b/src/ldso/powerpc/dlsym.s
@@ -5,5 +5,4 @@
 dlsym:
 	mflr    5                      # The return address is arg3.
 	b       __dlsym
-	.end    dlsym
 	.size   dlsym, .-dlsym
diff --git a/src/ldso/powerpc64/dlsym.s b/src/ldso/powerpc64/dlsym.s
index 7eb691d9..a14715fd 100644
--- a/src/ldso/powerpc64/dlsym.s
+++ b/src/ldso/powerpc64/dlsym.s
@@ -8,5 +8,4 @@ dlsym:
 	.localentry dlsym,.-dlsym
 	mflr    5                      # The return address is arg3.
 	b       __dlsym
-	.end    dlsym
 	.size   dlsym, .-dlsym
-- 
2.22.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] remove stray .end directives
  2019-07-02 13:09 [PATCH] remove stray .end directives Song Fangrui
@ 2019-07-02 16:58 ` Rich Felker
  2019-07-02 17:53   ` Markus Wichmann
  0 siblings, 1 reply; 5+ messages in thread
From: Rich Felker @ 2019-07-02 16:58 UTC (permalink / raw)
  To: musl

On Tue, Jul 02, 2019 at 01:09:46PM +0000, Song Fangrui wrote:
> This fixes an error when building musl powerpc{32,64} with clang
> (it doesn't know GNU as ignores .end arguments):
> 
> ../src/ldso/powerpc/dlsym.s:8:10: error: unexpected token in '.end' directive
>           .end    dlsym
> 
> I'm not sure if  .size   dlsym, .-dlsym should also be deleted to be
> consistent with other archs.


> From 1e8f793a4e191dd86c55f47a8e4ef8d76d773c1a Mon Sep 17 00:00:00 2001
> From: Fangrui Song <i@maskray.me>
> Date: Mon, 1 Jul 2019 09:42:49 +0000
> Subject: [PATCH] remove stray .end directives
> 
> ---
>  src/ldso/powerpc/dlsym.s   | 1 -
>  src/ldso/powerpc64/dlsym.s | 1 -
>  2 files changed, 2 deletions(-)
> 
> diff --git a/src/ldso/powerpc/dlsym.s b/src/ldso/powerpc/dlsym.s
> index 357d5771..cfe308ef 100644
> --- a/src/ldso/powerpc/dlsym.s
> +++ b/src/ldso/powerpc/dlsym.s
> @@ -5,5 +5,4 @@
>  dlsym:
>  	mflr    5                      # The return address is arg3.
>  	b       __dlsym
> -	.end    dlsym
>  	.size   dlsym, .-dlsym
> diff --git a/src/ldso/powerpc64/dlsym.s b/src/ldso/powerpc64/dlsym.s
> index 7eb691d9..a14715fd 100644
> --- a/src/ldso/powerpc64/dlsym.s
> +++ b/src/ldso/powerpc64/dlsym.s
> @@ -8,5 +8,4 @@ dlsym:
>  	.localentry dlsym,.-dlsym
>  	mflr    5                      # The return address is arg3.
>  	b       __dlsym
> -	.end    dlsym
>  	.size   dlsym, .-dlsym

This sounds right. Before I remove this, anyone have any idea what the
purpose of these was to begin with?

Rich


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] remove stray .end directives
  2019-07-02 16:58 ` Rich Felker
@ 2019-07-02 17:53   ` Markus Wichmann
  2019-07-02 21:03     ` Rich Felker
  0 siblings, 1 reply; 5+ messages in thread
From: Markus Wichmann @ 2019-07-02 17:53 UTC (permalink / raw)
  To: musl

On Tue, Jul 02, 2019 at 12:58:41PM -0400, Rich Felker wrote:
> On Tue, Jul 02, 2019 at 01:09:46PM +0000, Song Fangrui wrote:
> > diff --git a/src/ldso/powerpc64/dlsym.s b/src/ldso/powerpc64/dlsym.s
> > index 7eb691d9..a14715fd 100644
> > --- a/src/ldso/powerpc64/dlsym.s
> > +++ b/src/ldso/powerpc64/dlsym.s
> > @@ -8,5 +8,4 @@ dlsym:
> >  	.localentry dlsym,.-dlsym
> >  	mflr    5                      # The return address is arg3.
> >  	b       __dlsym
> > -	.end    dlsym
> >  	.size   dlsym, .-dlsym
>
> This sounds right. Before I remove this, anyone have any idea what the
> purpose of these was to begin with?
>
> Rich

I can't tell you the purpose, but I can tell you the effect: This
directive ends assembly parsing. Therefore the .size directive below
them was never in effect before (if the documentation is to be trusted).
Dunno if that has any apparent effect though (besides the output of
objdump).

The PPC64 file was added in one go by Bobby Bingham in 2016. I guess the
line there is for consistency with PPC32. The PPC32 file was added in
2012 by rofl0r, though the blame also shows one Richard Pennington (not
the log, though). Weird. Anyway, the log message is also not very
enlightening. I can only assume the line was added in error. That, or
the .size directive. Together they make no sense.

Ciao,
Markus


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] remove stray .end directives
  2019-07-02 17:53   ` Markus Wichmann
@ 2019-07-02 21:03     ` Rich Felker
  2019-07-03  2:21       ` Fangrui Song
  0 siblings, 1 reply; 5+ messages in thread
From: Rich Felker @ 2019-07-02 21:03 UTC (permalink / raw)
  To: musl

On Tue, Jul 02, 2019 at 07:53:53PM +0200, Markus Wichmann wrote:
> On Tue, Jul 02, 2019 at 12:58:41PM -0400, Rich Felker wrote:
> > On Tue, Jul 02, 2019 at 01:09:46PM +0000, Song Fangrui wrote:
> > > diff --git a/src/ldso/powerpc64/dlsym.s b/src/ldso/powerpc64/dlsym.s
> > > index 7eb691d9..a14715fd 100644
> > > --- a/src/ldso/powerpc64/dlsym.s
> > > +++ b/src/ldso/powerpc64/dlsym.s
> > > @@ -8,5 +8,4 @@ dlsym:
> > >  	.localentry dlsym,.-dlsym
> > >  	mflr    5                      # The return address is arg3.
> > >  	b       __dlsym
> > > -	.end    dlsym
> > >  	.size   dlsym, .-dlsym
> >
> > This sounds right. Before I remove this, anyone have any idea what the
> > purpose of these was to begin with?
> >
> > Rich
> 
> I can't tell you the purpose, but I can tell you the effect: This
> directive ends assembly parsing. Therefore the .size directive below
> them was never in effect before (if the documentation is to be trusted).
> Dunno if that has any apparent effect though (besides the output of
> objdump).
> 
> The PPC64 file was added in one go by Bobby Bingham in 2016. I guess the
> line there is for consistency with PPC32. The PPC32 file was added in
> 2012 by rofl0r, though the blame also shows one Richard Pennington (not
> the log, though). Weird. Anyway, the log message is also not very
> enlightening. I can only assume the line was added in error. That, or
> the .size directive. Together they make no sense.

Thanks. Applying.

Rich


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] remove stray .end directives
  2019-07-02 21:03     ` Rich Felker
@ 2019-07-03  2:21       ` Fangrui Song
  0 siblings, 0 replies; 5+ messages in thread
From: Fangrui Song @ 2019-07-03  2:21 UTC (permalink / raw)
  To: Rich Felker; +Cc: musl

On 2019-07-02, Rich Felker wrote:
>On Tue, Jul 02, 2019 at 07:53:53PM +0200, Markus Wichmann wrote:
>> On Tue, Jul 02, 2019 at 12:58:41PM -0400, Rich Felker wrote:
>> > On Tue, Jul 02, 2019 at 01:09:46PM +0000, Song Fangrui wrote:
>> > > diff --git a/src/ldso/powerpc64/dlsym.s b/src/ldso/powerpc64/dlsym.s
>> > > index 7eb691d9..a14715fd 100644
>> > > --- a/src/ldso/powerpc64/dlsym.s
>> > > +++ b/src/ldso/powerpc64/dlsym.s
>> > > @@ -8,5 +8,4 @@ dlsym:
>> > >  	.localentry dlsym,.-dlsym
>> > >  	mflr    5                      # The return address is arg3.
>> > >  	b       __dlsym
>> > > -	.end    dlsym
>> > >  	.size   dlsym, .-dlsym
>> >
>> > This sounds right. Before I remove this, anyone have any idea what the
>> > purpose of these was to begin with?
>> >
>> > Rich
>>
>> I can't tell you the purpose, but I can tell you the effect: This
>> directive ends assembly parsing. Therefore the .size directive below
>> them was never in effect before (if the documentation is to be trusted).
>> Dunno if that has any apparent effect though (besides the output of
>> objdump).
>>
>> The PPC64 file was added in one go by Bobby Bingham in 2016. I guess the
>> line there is for consistency with PPC32. The PPC32 file was added in
>> 2012 by rofl0r, though the blame also shows one Richard Pennington (not
>> the log, though). Weird. Anyway, the log message is also not very
>> enlightening. I can only assume the line was added in error. That, or
>> the .size directive. Together they make no sense.
>
>Thanks. Applying.

In linkers, I think st_size is only useful for STT_OBJECT (copy relocation).
It is not really necessary for functions.

There is some small value to have non-zero st_size for STT_FUNC though:
symbolizers and some other binary inspection tools may leverage this field.
Since most assembly files in musl do have .size, I think it makes sense
to omit it for consistency.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-07-03  2:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-02 13:09 [PATCH] remove stray .end directives Song Fangrui
2019-07-02 16:58 ` Rich Felker
2019-07-02 17:53   ` Markus Wichmann
2019-07-02 21:03     ` Rich Felker
2019-07-03  2:21       ` Fangrui Song

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).