Bug 25553

Summary: pread function versioned incorrectly
Product: [Retired] Red Hat Linux Reporter: Ben LaHaise <bcrl>
Component: glibcAssignee: Jakub Jelinek <jakub>
Status: CLOSED NOTABUG QA Contact: Aaron Brown <abrown>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: fweimer
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-02-01 22:36:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ben LaHaise 2001-02-01 22:36:43 UTC
Compiling the following test program on an RH7 or 7.1beta machine results
in a program that does not run on a 6.2 box, even though the pread function
definition has not changed.

gcc -Wall -lpthread -lrt -o pread_test pread_test.c

int main()
{
	char buf[256];
	pread(0, buf, 0, 0);
	return 0;
}

Comment 1 Jakub Jelinek 2001-02-02 15:43:40 UTC
It has changed, because in glibc 2.1.3 and below it had no linuxthreads
wrapper. And no matter what, symbol versioning is about upward binary
compatibility so older binaries work with newer libc, not vice versa.
pread and family could not be put into GLIBC_2.1.3 because 2.1.3 was released,
and e.g. rpm would be severely confused if we started adding symbols @GLIBC_2.1
now.