Relocation error in libc.so.6
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
glibc (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
The complete error message is as follows:
./testapp: relocation error: ./testapp: symbol __get_cpu_features, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
The "testapp" has been compiled in Ubuntu 14.04 LTS server with Free Pascal to 64bit executable. The executable doesn't have anything Free Pascal specific and it works fine in other Ubuntu 14.04 LTS and 15.10 computers. I verified this by running the executable in a fresh-installed 15.10 virtual computer, which did not have anything Free Pascal related installed.
Now I copied the executable into 16.04 LTS (release candidate) computer and tried to run it, but it gives the above mentioned error message.
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: libc6 2.23-0ubuntu3
ProcVersionSign
Uname: Linux 4.4.0-18-generic x86_64
ApportVersion: 2.20.1-0ubuntu2
Architecture: amd64
Date: Wed Apr 20 16:15:39 2016
Dependencies:
gcc-6-base 6.0.1-0ubuntu1
libc6 2.23-0ubuntu3
libgcc1 1:6.0.1-0ubuntu1
InstallationDate: Installed on 2016-04-11 (9 days ago)
InstallationMedia: Ubuntu-Server 16.04 LTS "Xenial Xerus" - Beta amd64 (20160325)
SourcePackage: glibc
UpgradeStatus: No upgrade log present (probably fresh install)
The private symbol __get_cpu_ features@ @GLIBC_ PRIVATE has moved from libc6 to ld-linux- x86-64. so.2 where it belongs. ABI stability for private symbols is not guaranteed and, frankly, I'm not sure why you'd be linking to it at all.
Without more info about how you managed to create this situation, my suggestion would be that you need to recompile against the newer libc.