Bug#35049: More information
On Fri, Mar 26, 1999 at 12:47:56PM +0100, Richard Braakman wrote:
> (I'm Cc:ing the bash maintainer on this one. Guy, please see the logs
> for bug#35049 for the context.)
>
> I found the difference. bash 2.01.1 was compiled without
> optimization, and bash 2.02.1 was compiled with -O2. (This means we
> shipped slink with an unoptimized bash, hmph.)
>
> Without optimization, the stat functions defined in <sys/stat.h> are
> not inlined. They are referenced as external symbols, and the glibc
> people expect that they will be found in libc_nonshared.a.
<snip>
> What I still don't know is _why_ these definitions are unshared.
> It seems to me that it can only cause problems. What does it solve?
[ Take this explanation with a grain of salt, I'm not sure I'm
remembering this correctly ]
They are unshared, if I remember correctly, to deal with interface
problems in changing stat() functionality. Notice the definitions call
xstat, which is shared:
extern __inline__ int stat (__const char *__path,
struct stat *__statbuf) __THROW
{
return __xstat (_STAT_VER, __path, __statbuf);
}
This is because the contents of struct stat show a higher-than-averagae
inclination to change. _STAT_VER allows glibc to return the expected
struct stat; another piece of the binary compatibility effort. Why
stat() needed a different solution than library versioning is unclear.
> I see two ways to deal with the current situation.
>
> Strategy 1
>
> The symbol table pollution in libreadline is glibc's fault. glibc
> should deal with it by defining the necessary symbols dynamically.
>
> This will fix bash, and prevent reoccurrence of this problem in
> other libraries. But if it is done only by Debian, it may cause binary
> incompatibility with other platforms.
And I believe that Ulrich has in the past declined to make this change.
Dan
/--------------------------------\ /--------------------------------\
| Daniel Jacobowitz |__| CMU, CS class of 2002 |
| Debian GNU/Linux Developer __ Part-Time Systems Programmer |
| dan@debian.org | | drow@cs.cmu.edu |
\--------------------------------/ \--------------------------------/
Reply to: