shared libs


 
Thread Tools Search this Thread
Top Forums Programming shared libs
# 1  
Old 04-27-2010
shared libs

The gcc version is different on my computer than on the remote computer. An ldd on my program says:
Quote:
linux-gate.so.1 => (0xf7f47000) (made by kernel)
libc.so.6 => /lib32/libc.so.6 (0xf7ddf000) (points to libc-2.7.so)
/lib/ld-linux.so.2 (0xf7f48000) (points to ld-2.7.so)
Is there any way I can tell gcc to compile my program against my version of libc-2.7.so and ld-2.7.so (which I would provide along with the program) instead of the remote computer's libs ? (I do not have permissions to compile on the remote computer.)
# 2  
Old 04-27-2010
Quote:
Originally Posted by cyler
The gcc version is different on my computer than on the remote computer. An ldd on my program says:


Is there any way I can tell gcc to compile my program against my version of libc-2.7.so and ld-2.7.so (which I would provide along with the program) instead of the remote computer's libs ? (I do not have permissions to compile on the remote computer.)
How different? If it's just a minor version number then it might still be binary compatible with no special treatment.

If it's a major version number, then you'll probably need the headers themselves, not just the library, since the function definitions themselves may be different. Best bet is to simply compile it on the system you want it compiled for -- either that, or bring along the new libraries.
# 3  
Old 04-27-2010
Or statically compile it on the original system, maybe.
# 4  
Old 04-27-2010
=== SHARED ===
I have successfully linked ld-2.7.so by compiling like this:

gcc -std=c99 -D_POSIX_C_SOURCE=200112L -O2 -m32 -s -Wl,-dynamic-linker,ld-2.7.so myprogram.c

But I have not managed to successfuly link libc-2.7.so. How can I do that ?

=== STATIC ===
I have included the header netdb.h, where getaddrinfo is included, but gcc issues this warning:

warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

gcc -m32 -static -s -O2 -std=c99 -D_POSIX_C_SOURCE=200112L myprogram.c

How can I statically compile whatever file is missing ?

Last edited by cyler; 04-28-2010 at 08:38 AM.. Reason: SHARED and STATIC methods not functional yet
# 5  
Old 04-29-2010
The static link is telling you, in so many words, that the runtime code does not exist in the .a file(s) used to make a static link - the archive does not have the entry point for the getaddrinfo() call.
# 6  
Old 05-02-2010
afterthought - the kernel internals for the addr resolution are not identical, so the developers knew if they linked a static getaddrinfo for the wrong architecture it would crash.

You can manually create your own struct addrinfo - it is just that it is a pain in the butt, when compared to using getaddrinfo which is kind of auto-magic
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Required libs to compile libXft

Hello. I am looking for all the necessary packages required to be able to compile libXft. I tried to compile libXft-2.1.8.2$ and the error message was: checking for XRENDER... checking for XRENDER... checking for X... no checking X11/extensions/Xrender.h usability... no checking... (1 Reply)
Discussion started by: colt
1 Replies

2. AIX

Create shared libs on AIX (with certain libs which are statically linked)

I want to create a shared lib with certain libs statically linked to it. I can generate a fully shared lib as follows: gcc -maix64 -DHAVE_CONFIG_H -I. -I./src -DHAVE_OPENSSL -I/usr/include/openssl -I/usr/include -I/usr/include/apr-1 -D_LARGEFILE64_SOURCE -I/usr/java8_64/include -shared -o... (0 Replies)
Discussion started by: amandeepgautam
0 Replies

3. SuSE

How to get RPM Dependencies/libs

Hi All, I wanted to install an rpm package on two suse 10 systems. It installed successfully on one system but on the other it throws an error like error: Failed dependencies: rpmlib(PayloadIsLzma) <= 4.4.2-1 is needed by linuxProj-1-1.noarch Now this means that rpnm... (4 Replies)
Discussion started by: dirshah
4 Replies

4. Shell Programming and Scripting

Writing a 'Mad Libs' program using Ruby?

How would I go about writing a 'Mad Libs' type program using Ruby? Any examples would be greatly appreciated. Thanks! (0 Replies)
Discussion started by: greeky
0 Replies

5. AIX

runtime libs accessed by application in AIX

Hi , I need some inputs on runtime or shared libs for an application(s) in AIX . i have a requirement saying i need to rehost all the production applications into new AIX OS . Here Source and target oS is AIX but with different versions so for this i need to identify what are the... (1 Reply)
Discussion started by: naren_chella
1 Replies

6. AIX

Q: AIX dynamic linked libs

I think the default extension on AIX is .a so for dynamic lib "libabc.a", we can simply link against it by specifying "-labc" but here I have a dylib which been built by some one else called "libxyz.so" on AIX. once I say "-lxyz" the linker is only looking for libxzy.a but not .so after that.... (2 Replies)
Discussion started by: acerlinux
2 Replies

7. Programming

Seeking Some libs for AIX 5.3

hello everybody! I m compiling some program with the g++ on AIX 5.3 and it needs some library that i didn't find them i am new with the AIX here is the compilation error : g++ -Daix -fpic -o printps -lxercesc1_1 -L/oracle/OraHome/lib32/ -L/epost2/blitz/lib -lhmltods -lhmltops -lgeneric... (0 Replies)
Discussion started by: eternalflame
0 Replies

8. Shell Programming and Scripting

who to compile needed libs with Make

Hello all my project is contains 2 directories, 2 directories are building library and one for the executable that using the libes from the other 2 Now what im doing is compiling first the 2 libs directories and then the main directory. But I will like to automate the process and to be able ... (0 Replies)
Discussion started by: umen
0 Replies

9. Programming

default location of libs in dlopen

Hi Where is the default location of libs to search, when we specify any lib in dlopen function. And if we want to specify a custom location, how will we do it? thanks. (1 Reply)
Discussion started by: sumsin
1 Replies

10. Programming

compiling with include & libs

I like to compile a cxx file with g++ compiler. I tried with option g++ -I<include path> -L<library path> source-file but ending with compilation error in /usr/local/bin/gcc-lib/.../crt1.o I think the libraries are not taken from proper path How to compile a cxx file with libraries... (1 Reply)
Discussion started by: ls1429
1 Replies
Login or Register to Ask a Question