This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
On Thu, Nov 09, 2000 at 12:23:18AM -0800, Ulrich Drepper wrote: > "H . J . Lu" <hjl@valinux.com> writes: > > > Some functions have different versions in libc and libpthread. For > > example, pread has GLIBC_2.1 in libc and GLIBC_2.2 in libpthread. > > I can imagine potential problems with it. Shouldn't a fuction have > > the same verion cross all libraries? > > The names, although the same in all libraries, are completely > separated. They don't stand alone, they are used as a tuple > (library,version). It doesn't matter whether a symbol has different > names in different DSOs. > I am enclosing a testcase here taken from glibc 2.2: # ldd /usr/lib/librt.so libc.so.6 => /lib/libc.so.6 (0x40023000) libpthread.so.0 => /lib/libpthread.so.0 (0x40149000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) # make cc -D_GNU_SOURCE -I. -c -o tst-aio64.o tst-aio64.c cc -o test1 tst-aio64.o -lpthread -lrt cc -o test2 tst-aio64.o -lrt ./test1 aio_write test ok aio_read test ok lio_listio (write) test ok aio_fsync (aio_write) test ok finished3 finished2 finished ./test2 make: *** wait: No child processes. Stop. make: *** Waiting for unfinished jobs.... make: *** wait: No child processes. Stop. # nm test1 | grep pread U pread@@GLIBC_2.2 # nm test2 | grep pread U pread@@GLIBC_2.1 # ldd test2 librt.so.1 => /lib/librt.so.1 (0x40023000) libc.so.6 => /lib/libc.so.6 (0x40035000) libpthread.so.0 => /lib/libpthread.so.0 (0x4015b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Even though libpthread.so.0 is linked with test2. But the wrong pread is used. -- H.J. Lu (hjl@valinux.com)
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |