Re: Best way of compiling applications to run on older linux distros

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



but isn't it sufficient to copy ALL new libraries with which your application is dynamically linked

That's what we'd hoped.
The problem seems to be with the change in the dynamic linker hash style. We write in C++, so we link to libstdc++. So we have to ship libstdc++ for this approach to work. However if you build on a version of fedora later than about 5, the dynamic libraries are not compatible with eariler versions, unless you pass the --hash-style=sysv linker option. This is fine for our code, we can easily just configure that in our makefiles. The difficulty is that libstdc++ isn't built like that, so you can't ship the libstdc++ that comes is part of the compiler. It's not clear whether if I rebuilt gcc with perhaps CFLAGS=-Wl,--hash-style=sysv in the environment that would get me a gcc with a libstdc++ that was linked in a suitable way.

The version of glibc that you link to seems a critical issue as it sounds like it's not possible, or at least recommended, to upgrade glibc. I had hoped that I'd be able to pass a compiler option, or set a #define that limited the functions available in the header files, and thus restricted the version of glibc that was required. This is what I'd do on windows, or AIX. Can't find any documentation on how I'd do that in gcc though, but I'm probably just missing something.

Doesn't seem that simple though.


______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email ______________________________________________________________________

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux