0

When cross compiling certain projects (esp ones that use libtool to setup the build) as shared libraries for unix based systems, the output is usually a *.so.x.y.z file with all the versioning information standard for shared libraries.

Unfortunately a couple platforms, specifically BlackBerry and Android, don't play nice with soname versioning and symlinks in application packages.

Ideally you'd be able to tell the build tools to build shared libraries without versioning, but I've found this to be a pretty difficult and time consuming task. For some projects, I was unable to figure how to prevent versioning at all. Playing around with variables in project build scripts might also silently break something or bring about unexpected behavior.

Is there a way to get rid of all the versioning information for a set of shared object binaries after they've been built?

Prismatic
  • 3,338
  • 5
  • 36
  • 59

1 Answers1

0

Yes, you can disable it by adding -avoid-version to <your library>_LDFLAGS as described here: GNU Autotools: rebuild without version info

Community
  • 1
  • 1
rllsh57
  • 1
  • 1
  • The original poster was asking about versioning information that is encoded inside the library, not the file name version of the library. I don't know an easy way to suppress the embedding of versioning into the library except for getting rid of `-Wl,--version-script=` from any file participating in the build of the library :( – galaxy Nov 16 '21 at 06:49