[review] Clarify purpose of assert in _dl_lookup_symbol_x

Message ID gerrit.1572549639000.I3384349cef90cfd91862ebc34a4053f0c0a99404@gnutoolchain-gerrit.osci.io
State Superseded
Headers show
Series
  • [review] Clarify purpose of assert in _dl_lookup_symbol_x
Related show

Commit Message

Simon Marchi (Code Review) Oct. 31, 2019, 7:20 p.m.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/469
......................................................................

Clarify purpose of assert in _dl_lookup_symbol_x

Only one of the currently defined flags is incompatible with versioned
symbol lookups, so it makes sense to check for that flag and not its
complement.

Change-Id: I3384349cef90cfd91862ebc34a4053f0c0a99404
---
M elf/dl-lookup.c
1 file changed, 3 insertions(+), 5 deletions(-)




-- 
Gerrit-Project: glibc
Gerrit-Branch: master
Gerrit-Change-Id: I3384349cef90cfd91862ebc34a4053f0c0a99404
Gerrit-Change-Number: 469
Gerrit-PatchSet: 1
Gerrit-Owner: Florian Weimer <fweimer@redhat.com>
Gerrit-MessageType: newchange

Comments

Simon Marchi (Code Review) Nov. 12, 2019, 12:47 p.m. | #1
Gabriel F. T. Gomes has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/469
......................................................................


Patch Set 1: Code-Review+1

(1 comment)

Hi, Florian,

This cleanup looks good to me.  Thanks.

Reviewed-by: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>


| --- elf/dl-lookup.c
| +++ elf/dl-lookup.c
| @@ -793,16 +793,14 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
|    bump_num_relocations ();
|  
| -  /* No other flag than DL_LOOKUP_ADD_DEPENDENCY or DL_LOOKUP_GSCOPE_LOCK
| -     is allowed if we look up a versioned symbol.  */
| -  assert (version == NULL
| -	  || (flags & ~(DL_LOOKUP_ADD_DEPENDENCY | DL_LOOKUP_GSCOPE_LOCK))
| -	     == 0);
| +  /* DL_LOOKUP_RETURN_NEWEST does not make sense for versioned
| +     lookups.  */
| +  assert (version == NULL || !(flags & DL_LOOKUP_RETURN_NEWEST));

PS1, Line 797:

Checking for the incompatible flag makes more sense, imo, too.

|  
|    size_t i = 0;
|    if (__glibc_unlikely (skip_map != NULL))
|      /* Search the relevant loaded objects for a definition.  */
|      while ((*scope)->r_list[i] != skip_map)
|        ++i;
|  
|    /* Search the relevant loaded objects for a definition.  */
|    for (size_t start = i; *scope != NULL; start = 0, ++scope)

-- 
Gerrit-Project: glibc
Gerrit-Branch: master
Gerrit-Change-Id: I3384349cef90cfd91862ebc34a4053f0c0a99404
Gerrit-Change-Number: 469
Gerrit-PatchSet: 1
Gerrit-Owner: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Gabriel F. T. Gomes <gabriel@inconstante.net.br>
Gerrit-Comment-Date: Tue, 12 Nov 2019 12:47:09 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Simon Marchi (Code Review) Nov. 12, 2019, 12:52 p.m. | #2
Florian Weimer has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/469
......................................................................


Patch Set 2:

(1 comment)

I've added you to the glibc-maintainers group, so you can give +2 now as well.

(I'm not sure if we can keep up the practice of adding Reviewed-By: lines with Gerrit, because doing so creates a new patch version that needs review.)

| --- elf/dl-lookup.c
| +++ elf/dl-lookup.c
| @@ -793,16 +793,14 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
|    bump_num_relocations ();
|  
| -  /* No other flag than DL_LOOKUP_ADD_DEPENDENCY or DL_LOOKUP_GSCOPE_LOCK
| -     is allowed if we look up a versioned symbol.  */
| -  assert (version == NULL
| -	  || (flags & ~(DL_LOOKUP_ADD_DEPENDENCY | DL_LOOKUP_GSCOPE_LOCK))
| -	     == 0);
| +  /* DL_LOOKUP_RETURN_NEWEST does not make sense for versioned
| +     lookups.  */
| +  assert (version == NULL || !(flags & DL_LOOKUP_RETURN_NEWEST));

PS1, Line 797:

Indeed. (You can mark comments as not requiring a reply by marking
them as Resolved.)

|  
|    size_t i = 0;
|    if (__glibc_unlikely (skip_map != NULL))
|      /* Search the relevant loaded objects for a definition.  */
|      while ((*scope)->r_list[i] != skip_map)
|        ++i;
|  
|    /* Search the relevant loaded objects for a definition.  */
|    for (size_t start = i; *scope != NULL; start = 0, ++scope)

-- 
Gerrit-Project: glibc
Gerrit-Branch: master
Gerrit-Change-Id: I3384349cef90cfd91862ebc34a4053f0c0a99404
Gerrit-Change-Number: 469
Gerrit-PatchSet: 2
Gerrit-Owner: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Gabriel F. T. Gomes <gabriel@inconstante.net.br>
Gerrit-Comment-Date: Tue, 12 Nov 2019 12:52:18 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Gabriel F. T. Gomes <gabriel@inconstante.net.br>
Gerrit-MessageType: comment
Simon Marchi (Code Review) Nov. 12, 2019, 5:24 p.m. | #3
Carlos O'Donell has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/469
......................................................................


Patch Set 2:

> Patch Set 2:

> 

> (1 comment)

> 

> I've added you to the glibc-maintainers group, so you can give +2 now as well.

> 

> (I'm not sure if we can keep up the practice of adding Reviewed-By: lines with Gerrit, because doing so creates a new patch version that needs review.)


Reviewed-By: lines are important for my yearly metrics to see how we as a community are growing and who is reviewing and thanking them.


Let me try something.


-- 
Gerrit-Project: glibc
Gerrit-Branch: master
Gerrit-Change-Id: I3384349cef90cfd91862ebc34a4053f0c0a99404
Gerrit-Change-Number: 469
Gerrit-PatchSet: 2
Gerrit-Owner: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Gabriel F. T. Gomes <gabriel@inconstante.net.br>
Gerrit-CC: Carlos O'Donell <carlos@redhat.com>
Gerrit-Comment-Date: Tue, 12 Nov 2019 17:24:39 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Simon Marchi (Code Review) Nov. 12, 2019, 5:25 p.m. | #4
Carlos O'Donell has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/469
......................................................................


Patch Set 3: Code-Review+2

This looks good to me.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>



-- 
Gerrit-Project: glibc
Gerrit-Branch: master
Gerrit-Change-Id: I3384349cef90cfd91862ebc34a4053f0c0a99404
Gerrit-Change-Number: 469
Gerrit-PatchSet: 3
Gerrit-Owner: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Carlos O'Donell <carlos@redhat.com>
Gerrit-Reviewer: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Gabriel F. T. Gomes <gabriel@inconstante.net.br>
Gerrit-Comment-Date: Tue, 12 Nov 2019 17:25:54 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Simon Marchi (Code Review) Nov. 12, 2019, 5:26 p.m. | #5
Carlos O'Donell has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/469
......................................................................


Patch Set 3:

> Patch Set 2:

> 

> > Patch Set 2:

> > 

> > (1 comment)

> > 

> > I've added you to the glibc-maintainers group, so you can give +2 now as well.

> > 

> > (I'm not sure if we can keep up the practice of adding Reviewed-By: lines with Gerrit, because doing so creates a new patch version that needs review.)

> 

> Reviewed-By: lines are important for my yearly metrics to see how we as a community are growing and who is reviewing and thanking them.

> 

> Let me try something.


I have added my Reviewed-by directly into the bug comment, so that if you push and it matches, then it should be fine.


-- 
Gerrit-Project: glibc
Gerrit-Branch: master
Gerrit-Change-Id: I3384349cef90cfd91862ebc34a4053f0c0a99404
Gerrit-Change-Number: 469
Gerrit-PatchSet: 3
Gerrit-Owner: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Carlos O'Donell <carlos@redhat.com>
Gerrit-Reviewer: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Gabriel F. T. Gomes <gabriel@inconstante.net.br>
Gerrit-Comment-Date: Tue, 12 Nov 2019 17:26:39 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment

Patch

diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index fd44cd4..aaaf437 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -792,11 +792,9 @@ 
 
   bump_num_relocations ();
 
-  /* No other flag than DL_LOOKUP_ADD_DEPENDENCY or DL_LOOKUP_GSCOPE_LOCK
-     is allowed if we look up a versioned symbol.  */
-  assert (version == NULL
-	  || (flags & ~(DL_LOOKUP_ADD_DEPENDENCY | DL_LOOKUP_GSCOPE_LOCK))
-	     == 0);
+  /* DL_LOOKUP_RETURN_NEWEST does not make sense for versioned
+     lookups.  */
+  assert (version == NULL || !(flags & DL_LOOKUP_RETURN_NEWEST));
 
   size_t i = 0;
   if (__glibc_unlikely (skip_map != NULL))