Sponsored Content
Full Discussion: binary versioning
Top Forums Programming binary versioning Post 302139241 by porter on Friday 5th of October 2007 02:09:35 AM
Old 10-05-2007
It is traditional to put version numbers of shared libraries where the major number refers the interface to the library, the complete version refering to the implementation.

If you look in /usr/lib on an ELF system you will typically see

libNAME.so.major.minor

with a link from

libNAME.so.major to libNAME.so.major.minor

and another link

libNAME.so to libNAME.so.major

This library will have the SONAME attribute set to libNAME.so.major so when an application links against it, it will refer to the correct interface, not the exact implementation.

This allows the implementation to be updated and maintained as long as the interface does not change.

Some other binary systems have equivalents to ELF's SONAME, such as Darwin's 'install_name'.

The SONAME attribute is set at link time.
 

8 More Discussions You Might Find Interesting

1. Solaris

Solaris versioning

Please correct me if I am wrong... Isnt the only difference between minor releases of Solaris, ex. 9/04 and 9/05, is the patche revs between them? If so, why does the /etc/release info stay static when patched? (4 Replies)
Discussion started by: mhm4
4 Replies

2. Linux

Any Filesystems in Linux Support Versioning?

A question that has come up repeatedly where I work from our former VMS guys is... "will any Linux filesystem ever support versioning like RMS did"? When they talk about versioning they really are talking about something that *I think* would involve having apps that support versioning. For... (7 Replies)
Discussion started by: deckard
7 Replies

3. Shell Programming and Scripting

File Versioning with Shell Script

Need to add the version date to the moved file if same file name in folder exists and limit the same files in the folder. Ex: If moved or copy file abc.txt to folder XYZ then append the version date abc07112011.txt or abc07122011.txt in the folder. \xyz abc07132011.txt abc07122011.txt... (2 Replies)
Discussion started by: Brado
2 Replies

4. SCO

Versioning through undelete

Hi , I am using SCO openserver realease 3.2 and tried to test versioning on a directory with undelete -s . The command executes well but it is not creating any versions of the files in it. I have also setted versioning options via filesystem and then remounted it but of ... (0 Replies)
Discussion started by: dextergenious
0 Replies

5. Shell Programming and Scripting

Convert binary file to csv and then back to the binary format

Hello *nix specialists, Im working for a non profit organisation in Germany to transport DSL over WLAN to people in areas without no DSL. We are using Linksys WRT 54 router with DD-WRT firmware There are at the moment over 180 router running but we have to change some settings next time. So my... (7 Replies)
Discussion started by: digidax
7 Replies

6. Programming

Execution problem with Libtool Versioning control

Hi, Is anybody familiar with libtool could explain me the following issue.? I've created a small factorial program(fact_impl.c, fact_appln.c & fact.h) in order to know about this libtool. >>> fact.h #include<stdio.h> #include<math.h> extern unsigned int fact_num(unsigned int num);... (0 Replies)
Discussion started by: Parameswaran
0 Replies

7. Shell Programming and Scripting

Need to get versioning of the branch name dynamically

Hi, I need to get versioning of the branch name dynamically. can you please help us to achieve this functionality. curl https://altrecmktg.com/artifactory/mediamarketing/release-2.0.1/altrec.tar curl https://altrecmktg.com/artifactory/mediamarketing/release-2.0.2/altrec.tar everytime... (5 Replies)
Discussion started by: lkeswar
5 Replies

8. UNIX for Beginners Questions & Answers

Versioning up a file with initials?

I have this code that works great ... #!/bin/sh for file in "$@" do ext=${file##*.} base=${file%.*} num=${base##*v} zeroes=${num%%*} num=${num#$zeroes} #remove leading zeros, or it uses octal num=$((num+1)) base=${base%v*} ... (5 Replies)
Discussion started by: scribling
5 Replies
MAKEDEV(3)						     Linux Programmer's Manual							MAKEDEV(3)

NAME
makedev, major, minor - manage a device number SYNOPSIS
#define _BSD_SOURCE #include <sys/types.h> dev_t makedev(int maj, int min); int major(dev_t dev); int minor(dev_t dev); DESCRIPTION
A device ID consists of two parts: a major ID, identifying the class of the device, and a minor ID, identifying a specific instance of a device in that class. A device ID is represented using the type dev_t. Given major and minor device IDs, makedev() combines these to produce a device ID, returned as the function result. This device ID can be given to mknod(2), for example. The major() and minor() functions perform the converse task: given a device ID, they return, respectively, the major and minor components. These macros can be useful to, for example, decompose the device IDs in the structure returned by stat(2). CONFORMING TO
The makedev() major() and minor() functions are not specified in POSIX.1, but are present on many other systems. NOTES
These interfaces are defined as macros. Since glibc 2.3.3, they have been aliases for three GNU-specific functions: gnu_dev_makedev(3), gnu_dev_major(3), and gnu_dev_minor(3). The latter names are exported, but the traditional names are more portable. SEE ALSO
mknod(2), stat(2) COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2008-12-01 MAKEDEV(3)
All times are GMT -4. The time now is 11:21 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy