Relocation error in libc.so.6

Bug #1572569 reported by Kalle Tuulos
18
This bug affects 3 people
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
ProcVersionSignature: Ubuntu 4.4.0-18.34-generic 4.4.6
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)

Revision history for this message
Kalle Tuulos (kalle-tuulos) wrote :
description: updated
Revision history for this message
Adam Conrad (adconrad) wrote :

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.

Changed in glibc (Ubuntu):
status: New → Invalid
Revision history for this message
Vadim Peretokin (vperetokin) wrote :

Is that a serious suggestion though? Because in order to get your software deployed on older versions of Ubuntu, you must compile on the older version of the OS, not on a newer one. This is catch-22 advice right here.

Revision history for this message
Adam Conrad (adconrad) wrote :

It's a "serious" suggestion in as such as no software that you want to run on multiple libc versions should EVER use private symbols.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.