Skip to contentSkip to conversation

PATCH: Fix errlist for mips

DISCUSSION Roland McGrath 3 participants 12 messages Oct 25, 2002 – Nov 6, 2002 1 message not in the archive MIPS

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

You know better than I what existing mips libc.so.6 ABIs have for the size of sys_errlist. But for the current version, 123 omits many of the errno values I see in asm-mips/errno.h, and EDQUOT really is 1133. So I don't see how your change can be right.

#2 lore raw
Quoted 4 lines · Roland McGrath

You know better than I what existing mips libc.so.6 ABIs have for the size of sys_errlist. But for the current version, 123 omits many of the errno values I see in asm-mips/errno.h, and EDQUOT really is 1133. So I don't see how your change can be right.

That is what was in glibc 2.0 for mips. However, glibc 2.2 is the first glibc version I worked on. I don't have any mips binaries compiled against glibc 2.0. As far as I know, none of glibc prior to the one with all my mips patches applied ever worked 100% correct on mips.

H.J.

#3 lore raw
Quoted 10 lines · H. J. Lu
Quoted 4 lines · Roland McGrath

You know better than I what existing mips libc.so.6 ABIs have for the size of sys_errlist. But for the current version, 123 omits many of the errno values I see in asm-mips/errno.h, and EDQUOT really is 1133. So I don't see how your change can be right.

That is what was in glibc 2.0 for mips. However, glibc 2.2 is the first glibc version I worked on. I don't have any mips binaries compiled against glibc 2.0. As far as I know, none of glibc prior to the one with all my mips patches applied ever worked 100% correct on mips.

Not everyone uses your MIPS patches; I have a completely functional MIPS system with:

0019df30 l     O .data  000011b8              _new_sys_errlist
0019df30 l     O .data  000001ec              _old_sys_errlist

(That's 1134*4 in the new one and 123*4 in the older one). There's a lot of these beasts deployed and I'd hate to see an incompatible change now!

Signature · 2 lines
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer
#4 lore raw
Quoted 4 lines · Daniel Jacobowitz

Not everyone uses your MIPS patches; I have a completely functional MIPS system with:

0019df30 l     O .data  000011b8              _new_sys_errlist
0019df30 l     O .data  000001ec              _old_sys_errlist

It doesn't tell anything. Please, please show size of sys_errlist in glibc 2.0 for mips. I am not even sure if you can run mips binaries compiled against glibc 2.0 with glibc 2.2/2.3.

H.J.

#5 lore raw
Quoted 9 lines · H. J. Lu
Quoted 4 lines · Daniel Jacobowitz

Not everyone uses your MIPS patches; I have a completely functional MIPS system with:

0019df30 l     O .data  000011b8              _new_sys_errlist
0019df30 l     O .data  000001ec              _old_sys_errlist

It doesn't tell anything. Please, please show size of sys_errlist in glibc 2.0 for mips. I am not even sure if you can run mips binaries compiled against glibc 2.0 with glibc 2.2/2.3.

I didn't use 2.0 for MIPS either. And I got the wrong impression from your last message; sorry!

Here's what my MIPS glibc has:

0019df30 g    DO .data  000001ec (GLIBC_2.0)  sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   sys_errlist
0019df30 g    DO .data  000001ec (GLIBC_2.0)  _sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   _sys_errlist

So: I don't know where the GLIBC_2.1 version came from, or why we need a GLIBC_2.3 version, or why we should change the size of the GLIBC_2.0 version. Your patch looks good; should you wipe the GLIBC_2.1 version also?

Signature · 2 lines
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer
#6 lore raw
Quoted 20 lines · Daniel Jacobowitz
Quoted 9 lines · H. J. Lu
Quoted 4 lines · Daniel Jacobowitz

Not everyone uses your MIPS patches; I have a completely functional MIPS system with:

0019df30 l     O .data  000011b8              _new_sys_errlist
0019df30 l     O .data  000001ec              _old_sys_errlist

It doesn't tell anything. Please, please show size of sys_errlist in glibc 2.0 for mips. I am not even sure if you can run mips binaries compiled against glibc 2.0 with glibc 2.2/2.3.

I didn't use 2.0 for MIPS either. And I got the wrong impression from your last message; sorry!

Here's what my MIPS glibc has:

0019df30 g    DO .data  000001ec (GLIBC_2.0)  sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   sys_errlist
0019df30 g    DO .data  000001ec (GLIBC_2.0)  _sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   _sys_errlist
Quoted 4 lines

So: I don't know where the GLIBC_2.1 version came from, or why we need a GLIBC_2.3 version, or why we should change the size of the GLIBC_2.0 version. Your patch looks good; should you wipe the GLIBC_2.1 version also?

sys_errlist in glibc 2.0 is naked. We gave it a version of GLIBC_2.0 when versioning was implemented and we had to increase the size of sys_errlist. We gave it a new version, GLIBC_2.1. Now sys_errlist is changed again for some arches. That is where GLIBC_2.3 came from. For mips, the first supported glibc version after 2.0 is 2.2. That turns GLIBC_2.1 into GLIBC_2.2 for mips. Since mips's sys_errlist is huge in 2.2, there is no need to change it in 2.3.

H.J.

#7 lore raw
In reply to Daniel Jacobowitz
Quoted 5 lines

Here's what my MIPS glibc has:

0019df30 g    DO .data  000001ec (GLIBC_2.0)  sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   sys_errlist
0019df30 g    DO .data  000001ec (GLIBC_2.0)  _sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   _sys_errlist

Ok, that says sys_nerr=123 in 2.0 and sys_nerr=1134 in 2.2. I have changed the map to have just those.

Thanks,
Roland

#8 lore raw
Quoted 8 lines · Roland McGrath
Quoted 5 lines

Here's what my MIPS glibc has:

0019df30 g    DO .data  000001ec (GLIBC_2.0)  sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   sys_errlist
0019df30 g    DO .data  000001ec (GLIBC_2.0)  _sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   _sys_errlist

Ok, that says sys_nerr=123 in 2.0 and sys_nerr=1134 in 2.2. I have changed the map to have just those.

Please keep in mind that the next version is GLIBC_2.1, not GLIBC_2.2. The reason you see GLIBC_2.2 is GLIBC_2.2 is the first versioned ABI for MIPS.

H.J.

#9 lore raw
Quoted 7 lines · Roland McGrath
Quoted 6 lines
Quoted 5 lines

Here's what my MIPS glibc has:

0019df30 g    DO .data  000001ec (GLIBC_2.0)  sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   sys_errlist
0019df30 g    DO .data  000001ec (GLIBC_2.0)  _sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   _sys_errlist
Quoted 6 lines
Quoted 2 lines

Ok, that says sys_nerr=123 in 2.0 and sys_nerr=1134 in 2.2. I have changed the map to have just those.

Please keep in mind that the next version is GLIBC_2.1, not GLIBC_2.2. The reason you see GLIBC_2.2 is GLIBC_2.2 is the first versioned ABI for MIPS.

I don't think it's meaningful to make the distinction. If we wrote GLIBC_2.1, shlib-versions causes it to be GLIBC_2.2, but that's more confusing. Now it says GLIBC_2.2, and that's what you get. There was never a "sys_errlist@GLIBC_2.1" symbol in any binary, so it doesn't make sense to have that version set.

#10 lore raw
Quoted 14 lines · Roland McGrath
Quoted 7 lines · Roland McGrath
Quoted 6 lines
Quoted 5 lines

Here's what my MIPS glibc has:

0019df30 g    DO .data  000001ec (GLIBC_2.0)  sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   sys_errlist
0019df30 g    DO .data  000001ec (GLIBC_2.0)  _sys_errlist
0019df30 g    DO .data  000011b8  GLIBC_2.2   _sys_errlist
Quoted 6 lines
Quoted 2 lines

Ok, that says sys_nerr=123 in 2.0 and sys_nerr=1134 in 2.2. I have changed the map to have just those.

Please keep in mind that the next version is GLIBC_2.1, not GLIBC_2.2. The reason you see GLIBC_2.2 is GLIBC_2.2 is the first versioned ABI for MIPS.

Quoted 5 lines

I don't think it's meaningful to make the distinction. If we wrote GLIBC_2.1, shlib-versions causes it to be GLIBC_2.2, but that's more confusing. Now it says GLIBC_2.2, and that's what you get. There was never a "sys_errlist@GLIBC_2.1" symbol in any binary, so it doesn't make sense to have that version set.

But you will only see sys_errlist in GLIBC_2.1 in Versions in glibc 2.2.

H.J.

#11 lore raw
Quoted 1 line

But you will only see sys_errlist in GLIBC_2.1 in Versions in glibc 2.2.

That is indeed a bit confusing as well. But what really matters is what binaries historically contained, and that the current source code produces that result.

#12 lore raw
Quoted 6 lines · Roland McGrath
Quoted 1 line

But you will only see sys_errlist in GLIBC_2.1 in Versions in glibc 2.2.

That is indeed a bit confusing as well. But what really matters is what binaries historically contained, and that the current source code produces that result.

errlist is not the only one. Most of GLIBC_2.2 for mips come from GLIBC_2.1.

H.J.