Sponsored Content
Full Discussion: static and shared libraries
Top Forums UNIX for Advanced & Expert Users static and shared libraries Post 302157802 by JamesByars on Saturday 12th of January 2008 02:08:52 PM
Old 01-12-2008
static and shared libraries

can someone explain whether my understanding is correct

lets suppose we have a program that uses library x.

if x is static then the code of x will be part of our program, so if we're going to have 5 executables of our program, then each executable will have x as part of it.
Also, x does not have to be stored anywhere on the filesystem as it will be part of all execujtables.

if x is dynamic then the code of x will not be part of the program. Instead x will need to be placed somewhere on the system and the program x will look for x when it is run.

Thanks.
 

10 More Discussions You Might Find Interesting

1. Programming

Shared libraries

Hello everybody, I am having major problems at the moment with shared libraries and I have to little knowledge of them to solve them. So please, please help me :) Ok this is the problem: I have a library A, which uses B and C, and C uses again D. If I try to run A as plugin in apache,... (0 Replies)
Discussion started by: Micky
0 Replies

2. Programming

shared libraries

I am compiling code which produces .a and .la libraries. How can I produce .so libraries? I know that gcc -shared does but how? (2 Replies)
Discussion started by: thalex
2 Replies

3. UNIX for Dummies Questions & Answers

Clarification about shared Libraries

I have a doubt about the shared libraries. Where do you set the path for the shared libaries, for the dynamic loader to locate. Any suggestion would be of great help. thanks (3 Replies)
Discussion started by: ramkumar_gr
3 Replies

4. Programming

Static objects in libraries

Hi! I have the following problem with C++ programs on Unix: There is a binary executable program called, e.g. Main. It is dynamically linked with two shared libraries: Shared1 and Shared2. Both of these libraries, in turn, are statically linked with a static library called Static. This static... (0 Replies)
Discussion started by: maestro@altiris
0 Replies

5. Linux

Shared Libraries

How do i make a library shared say i have a library a.so which i have just compiled. I want to make it shared how do i make it Next Queation is what is the difference between a.so.0 a.so.1 a.so.2 & a.so :rolleyes: (1 Reply)
Discussion started by: wojtyla
1 Replies

6. UNIX for Advanced & Expert Users

Shared Libraries- CRITICAL !!

Hi, I am trying to create a shared library from a .c file using gcc -c -fpic -I/usr/local/include Chksum.C -o Chksum.o gcc -shared -o libtclcksum.so Chksum.o when i try to load this shared library libtclcksum.so in tclsh % load libtclcksum.so I get the following error: couldn't load... (1 Reply)
Discussion started by: archana485
1 Replies

7. Programming

Static libraries and fork()

Hi, Let's say there's an application compiled with a static library. So, if the application forks processes, then the static library is copied, also? Or the static library codes are shared between the processes of the application? Thanks in advance. (2 Replies)
Discussion started by: xyzt
2 Replies

8. Programming

Question about what Static Libraries are...

im used to windows dll which gets loaded at runtime, are static libraries the same? the ones i link with -l on gcc? i mean, if my app used libpng for example, and i compiled it to a single ELF executable and took it to another pc that have no libpng on it, will it work? or it will complain... (2 Replies)
Discussion started by: JonhyM
2 Replies

9. Red Hat

shared libraries problem

hi, while running the below query it gives the shared libraries prmblem, $ cd /oracle/app/product/fmw/asinst_1/bin/ $ ./opmnctl status /oracle/app/product/fmw/Oracle_IDM1/opmn/bin/opmn: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: Permission... (0 Replies)
Discussion started by: rahulsword
0 Replies

10. Solaris

Self contained shared libraries

Does anyone know whether it is possible to make self contained shared libraries ? (.so files). If so, what is the way to do it ? ---------- Post updated at 08:03 AM ---------- Previous update was at 07:56 AM ---------- On Solaris that is. (6 Replies)
Discussion started by: lkb
6 Replies
execstack(8)						      System Manager's Manual						      execstack(8)

NAME
execstack - tool to set, clear, or query executable stack flag of ELF binaries and shared libraries SYNOPSIS
execstack [OPTION...] [FILES] DESCRIPTION
execstack is a program which sets, clears, or queries executable stack flag of ELF binaries and shared libraries. Linux has in the past allowed execution of instructions on the stack and there are lots of binaries and shared libraries assuming this behaviour. Furthermore, GCC trampoline code for e.g. nested functions requires executable stack on many architectures. To avoid breaking binaries and shared libraries which need executable stack, ELF binaries and shared libraries now can be marked as requiring executable stack or not requiring it. This marking is done through the p_flags field in the PT_GNU_STACK program header entry. If the marking is missing, kernel or dynamic linker need to assume it might need executable stack. The marking is done automatically by recent GCC versions (objects using trampolines on the stack are marked as requiring executable stack, all other newly built objects are marked as not requiring it) and linker collects these markings into marking of the whole binary or shared library. The user can override this at assembly time (through --execstack or --noexecstack assembler options), at link time (through -z execstack or -z noexecstack linker options) and using the execstack tool also on an already linker binary or shared library. This tool is especially useful for third party shared libraries where it is known that they don't need executable stack or testing proves it. OPTIONS
-s --set-execstack Mark binary or shared library as requiring executable stack. -c --clear-execstack Mark binary or shared library as not requiring executable stack. -q --query Query executable stack marking of binaries and shared libraries. For each file it prints either - when executable stack is not required, X when executable stack is required or ? when it is unknown whether the object requires or doesn't require executable stack (the marking is missing). -V Print execstack version and exit. -? --help Print help message. --usage Print a short usage message. ARGUMENTS
Command line arguments should be names of ELF binaries and shared libraries which should be modified or queried. EXAMPLES
# execstack -s ~/lib/libfoo.so.1 will mark ~/lib/libfoo.so.1 as requiring executable stack. # execstack -c ~/bin/bar will mark ~/bin/bar as not requiring executable stack. # execstack -q ~/lib/libfoo.so.1 ~/bin/bar will query executable stack marking of the given files. SEE ALSO
ld.so(8). BUGS
execstack doesn't support yet marking of executables if they do not have PT_GNU_STACK program header entry nor they have room for program segment header table growth. AUTHORS
Jakub Jelinek <jakub@redhat.com>. 28 October 2003 execstack(8)
All times are GMT -4. The time now is 06:37 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy