Sponsored Content
Top Forums Programming How to make use others' C library installed not for the system-wide (Ubuntu/Linux)? Post 303043071 by GRMartin on Friday 17th of January 2020 09:50:13 AM
Old 01-17-2020
rpath is actually a linker option rather then a compiler option. gcc passes it to ld.



Well, th estandard way to use shared objects (.so) is to install them in the system directories used for that purpose (/usr/lib etc.) but that's not always possible. The archive (.a) allows you to link objects into your executable which produces a larger exectable but gets around the problem. If the library is updated you must recompile whereas with a shared object you only need to recompile if the update breaks your code.


For the loader to load a shared object at runtime it must know where to find them. rpath tells the linker to embed the path in the header of the executable but if the so is moved the loader won't be able to load it. ORIGIN resolves to whereeve the binary is at runtime so as long as the library stays with the executable it works.


-Greg.
This User Gave Thanks to GRMartin For This Post:
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

links working system wide

I have created symbolic links to several frequently used commands, for example: "lt" is a link to "ls -ltrgo|tail". What can I do to make these links available system-wide, or at least in the directories my coworkers are in most of the time? I have copied the link to several directories, and... (6 Replies)
Discussion started by: jpprial
6 Replies

2. UNIX for Advanced & Expert Users

System wide CDE setup

Does anyone know how to make system wide changes to the CDE's front panel icons? I dont know if it matters but im running Solaris 9. THanks (1 Reply)
Discussion started by: meyersp
1 Replies

3. UNIX for Dummies Questions & Answers

FIND function - system wide

Hi, I have a task to search for a file called 'Xstartup' in the whole system because there might be different versions of it which overrite eachother. Can anyone suggest a smart command to run this search ? The machine needs to scan every single folder beginning from root. Please help, I am... (5 Replies)
Discussion started by: DGoubine
5 Replies

4. Filesystems, Disks and Memory

How to mount/make a FAT system on Linux

Yea i was wondering how i would mount, and create a FAT directory that way i can save files in the FAT directory in a windows system and be able to access them on Linux systems. Or if there is any other way to share files between Linux and Windows. Any responds will help... thanks! (2 Replies)
Discussion started by: kyoist
2 Replies

5. Shell Programming and Scripting

system wide password change

Hello, I am new to shell scripting and I was trying to write a script that would force a system wide password change except for admins. I am having some trouble and any help that someone could give me would be greatly appreciated. I am trying to do it by using the UID as the marker for anyone... (6 Replies)
Discussion started by: kilemark
6 Replies

6. Linux

System wide find and sort

Hi, I need to look for a config file (ldap.conf) and pick the latest modified file. `locate` tells me there are many ldap.conf's, some in /etc, /usr, /home, etc. Is there some way I can sort them by last modified time via bash? I was thinking maybe I could pipe the output of `locate` to `ls... (4 Replies)
Discussion started by: Housni
4 Replies

7. Linux

How to run User-mode Linux installed with synaptic package manager in Ubuntu 10.10

I have installed user-mode linux kernel in Ubuntu 10.10 with the help of Synaptic package manager. But I'm not getting how to run it. If we install it manually, we've to run it using the executable binary file. But here, I'm unable to locate any such file. Please help.... Thanking You.... ... (0 Replies)
Discussion started by: rohitadeshmukh1
0 Replies

8. Red Hat

Changing system-wide for umask

Hi everybody, How can I change the default UMASK for non root users, e.g. I want the umask for every new created user will be 0044. Thanks (6 Replies)
Discussion started by: leo_ultra_leo
6 Replies

9. Shell Programming and Scripting

System-wide search

When looking for wherever a program or a filename appears in the system, a short scrip is "findinner" which another script calls with a long parameter list consisting of path names ending with ".sh" or ".menu". "findinner" looks like this: # If not .savenn file, show name and result of grep. #... (4 Replies)
Discussion started by: wbport
4 Replies
fixso(1)						      General Commands Manual							  fixso(1)

NAME
fixso - Fixes a shared object so that it can be quickstarted SYNOPSIS
fixso [+i | -i] [+w | -w] [+d | -d] [+n | -n] [-V] [-o outputobj] [-p path] inputobj OPTIONS
Turns informational message reporting on and off, respectively. By default (-i), informational messages are not reported. Turns warning message reporting on and off, respectively. By default (+w), warning messages are reported. Turns debugging message reporting on and off, respectively. By default (-d), debugging messages are not reported. Turns output generation on and off, respectively. By default (+n), fixso writes output to a.out or to the file specified by the -o option. If you specify -n, fixso just analyzes the inputobj and generates no output. Displays the version of the fixso command. Specifies the file to which fixso writes its output. By default, output is sent to a.out. Adds path to the beginning of the shared library search path. The default library search path, as explained in loader(5), is used. The fixso utility also honors any definition of the LD_LIBRARY_PATH environment variable. DESCRIPTION
The fixso utility allows executables that depend on a shared library registered in the so_locations database to continue to run quick- started even if the shared library changed after the time the executable was originally linked against it. The fixso utility accomplishes this by adjusting the object's checksum and timestamp, reconciling the object's conflict table (the list of symbols that are multiply defined among the entries in the object's library list), and resolving global symbols. You specify one executable or shared object in the inputobj parameter. The fixso utility opens the target object, scanning its library list for dependencies on symbols defined in other objects. When it discovers a dependency, it automatically opens the associated object and con- tinues processing it in the same manner, as long as it is located in the default library search path, the path indicated by the LD_LIBRARY_PATH environment variable, or specified by the -p option. Otherwise, it generates a message advising you to run fixso on that object first. The fixso utility examines each object's interface version, shared object name (soname), timestamp, and checksum. Although it can adjust timestamp and checksum discrepancies among the entries in the object's library list, fixso has the following limitations: The fixso utility does not change the size of the binary object; it will not expand the size of the conflict table if it encounters a new multiply-defined symbol while traversing the object's library list. An object's actual run-time memory location must match the quickstart location recorded in the so_locations file. The fixso utility cannot make an object quick-startable if the object has been moved from its quickstart loca- tion, or if another object has been moved into its quickstart location. The version of the run-time linker interface used by an object mapped in the inputobj's library list must be the same version used when inputobj was created by the linker. An object mapped in inputobj's library list must be located in the same library search path it was in when inputobj was created by the linker. The soname of an object mapped in inputobj's library list must be the same as when inputobj was created by the linker. By default, an object's soname is its filename (without a prepended pathname). ERRORS
The fixso utility generates the following types of messages: Error messages that indicate when the current use of the tool violates one of its limitations, as described previously. Error messages also help you determine the correct order in which to run fixso on a series of objects. You cannot turn off error messages. Warning messages that indicate conflicts, such as timestamp and checksum mismatches, that fixso attempts to fix automatically. The fixso utility generates warning messages by default. You can turn them off by specifying the -w option. Informational and debug messages that record the fixso utility's progress. These messages are turned off by default, but you can turn them on by using the +i and +d options, respectively. FILES
Shared library directory. Shared library directory. Shared library directory. Shared library directory. Shared library directory. Fix quickstarted shared objects utility. SEE ALSO
ld(1), loader(5) Programmer's Guide fixso(1)
All times are GMT -4. The time now is 05:29 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy