Sponsored Content
Operating Systems AIX Create shared libs on AIX (with certain libs which are statically linked) Post 303032328 by amandeepgautam on Friday 15th of March 2019 09:39:24 AM
Old 03-15-2019
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:

Code:
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 libnetty_tcnative.so src/jnilib.c src/bb.c src/error.c src/native_constants.c src/ssl.c src/sslcontext.c src/sslutils.c  -lc -L/opt/freeware/lib64 -lapr-1 -lssl -lcrypto -lpthread -Wl,-bnoentry -maix64 -O3 -pthread -Wl,-bnoquiet

If I do ldd on this lib, I get:
Code:
libnetty_tcnative.so needs:
         /opt/freeware/lib64/libgcc_s.a(shr.o)
         /opt/freeware/lib64/libssl.a(libssl.so.1.1.0)
         /opt/freeware/lib64/libcrypto.a(libcrypto.so.1.1.0)
         /usr/lib/libpthread.a(shr_xpg5_64.o)
         /usr/lib/libc.a(shr_64.o)
         /unix
         /usr/lib/libcrypt.a(shr_64.o)

Now, let's say I want to remove the dependency from libs in the folder /opt/freeware. For this, I am thinking to statically link libgcc_s.a, libssl.a and libcrypto.a. What flags can I pass to gcc so that it links these libs statically? It might also be okay to link everything statically so there is no dependence on any external libs. Also, would like to mention that I use /usr/bin/ld (native) with gcc.

Last edited by amandeepgautam; 03-15-2019 at 03:19 PM..
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. Programming

shared libs

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... (5 Replies)
Discussion started by: cyler
5 Replies

9. 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

10. 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
COMPAT_30(8)						    BSD System Manager's Manual 					      COMPAT_30(8)

NAME
compat_30 -- setup procedure for backward compatibility on post-3.0 releases SYNOPSIS
options COMPAT_30 DESCRIPTION
The compat_30 module allows NetBSD to run NetBSD 3.0 executables. The support is present if the kernel was built with option COMPAT_30. It is not available as a loadable module. Static executables typically need no additional setup. Dynamic binaries may require shared libraries whose major version number changed since NetBSD 3.0, which are listed below. A shadow directory under /emul is not used; the libraries can be obtained from a NetBSD 3.0 dis- tribution and installed in the original directories shown, as the major version number in the file name will prevent conflicts. If an upgrade installation from NetBSD 3.0 has been done and these libraries are still present, nothing more need be done. Libraries needed from 3.0 /lib/libcrypto.so.2.1 /lib/libcrypto.so.2 /usr/lib/libcrypto.so.2.1 /usr/lib/libcrypto.so.2 /lib/libevent.so.0.2 /lib/libevent.so.0 /usr/lib/libevent.so.0.2 /usr/lib/libevent.so.0 /usr/lib/libg2c.so.2.0 /usr/lib/libg2c.so.2 /usr/lib/libkadm.so.5.0 /usr/lib/libkadm.so.5 /usr/lib/libkafs.so.6.0 /usr/lib/libkafs.so.6 /usr/lib/libkdb.so.5.0 /usr/lib/libkdb.so.5 /usr/lib/libkrb5.so.19.1 /usr/lib/libkrb5.so.19 /usr/lib/libkrb.so.6.0 /usr/lib/libkrb.so.6 /usr/lib/libkstream.so.2.0 /usr/lib/libkstream.so.2 /usr/lib/libmagic.so.0.1 /usr/lib/libmagic.so.0 /usr/lib/libpcap.so.1.4 /usr/lib/libpcap.so.1 /lib/libradius.so.0.0 /lib/libradius.so.0 /usr/lib/libradius.so.0.0 /usr/lib/libradius.so.0 /usr/lib/libssh.so.1.0 /usr/lib/libssh.so.1 /usr/lib/libssl.so.3.0 /usr/lib/libssl.so.3 /usr/lib/libstdc++.so.5.0 /usr/lib/libstdc++.so.5 /lib/libz.so.0.4 /lib/libz.so.0 /usr/lib/libz.so.0.4 /usr/lib/libz.so.0 /usr/lib/libamu.so.2.1 /usr/lib/libamu.so.2 IMPLEMENTATION NOTES
COMPAT_30 enables the NetBSD 3.0 versions of the following system calls, whose syscall numbers and argument structures were changed after the 3.0 release to accommodate 64-bit filesystems: fhstat(2), fstat(2), getdents(2), lstat(2), stat(2). The filehandle structure (formerly fhandle_t) was made opaque to userland and variable-sized. A fh_size argument was added to related syscalls: fhstat(2), fhstatvfs(2), fhstatvfs1(2), fhopen(2), getfh(2). This changes the API and ABI of those syscalls, COMPAT_30 enables binary compatibility with the old ABI. Source compatibility is not provided, as use of those syscalls is supposed to be rare. The error code from the socket(2) syscall changed from EPROTONOSUPPORT to EAFNOSUPPORT in the case of an unsupported address family. COMPAT_30 enables binary compatibility with the old ABI. Source compatiblility is not provided. The struct ntptimeval used by ntp_gettime(2) changed with the implementation of timecounters. SEE ALSO
config(1), fhstat(2), fstat(2), getdents(2), lstat(2), stat(2), options(4) HISTORY
NetBSD offers back-compatibility options back to NetBSD 0.9, but the first to be documented with a manual page is compat_30. BUGS
The compatible getdents(2) is unable to see directory entries beneath the top layer of a union, even though the real 3.0 getdents() did not have that problem. SECURITY CONSIDERATIONS
Programs with security impact that receive incorrect directory contents from getdents() may behave improperly, as when they are unable to find, or find the wrong versions of, important files. BSD
December 15, 2007 BSD
All times are GMT -4. The time now is 01:04 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy