Building for older systems

Michael Eager eager@eagerm.com
Sun Nov 29 14:20:00 GMT 2015


I'm trying to build packages (gcc, etc.) on a newer
version of Linux which can run on an older Linux system
with an older glibc.  I've run into the memcpy versioning
problem.

Changes to memcpy in glibc-2.14 broke some programs which
used it incorrectly, so the modified memcpy was versioned
memcpy@GLIBC_2.14, which prevented old copies of these
buggy program from getting the new memcpy().  All well and
good.

This also means new programs compiled on a current glibc
require memcpy@GLIBC_2.14, even if they would work without
problem with the memcpy() from the older glibc.

I've been trying every way I can think of to build packages
with a current glibc which will run on an pre-2.14 glibc.
This includes adding a static memcpy.o to the executable.
This doesn't work, because the executable inherits the
requirements for memcpy@GLIBC_2.14 from libc.so.

Adding .symver statements is impractical, but also would
not work for the same reason.

Any solutions to building for an older glibc?

-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077



More information about the Libc-help mailing list