Sponsored Content
Operating Systems HP-UX need help in working with shared libraries on hpux Post 302102818 by p.premkumarr on Saturday 13th of January 2007 05:32:57 PM
Old 01-13-2007
need help in working with shared libraries on hpux

hi,
i am having problem loading multiple shared libraries. if i load, make call to exposed method and then unload them, everything workds fine, but i have to keep the loaded images in memory,

i am uploading the prog. as loader.zip, it contains

loader - loader.c which loads c++ shared libraries service1.sl, service2.sl and service3.sl into memory and initilises them

support - a c++ archive library which contains the common support needed for all the services, the loader makes call to a exposed method in support.cpp, HookFun namely..

support.h has a macro defines as EXT_INTERFACE which is smart, when a service says EXT_INTERFACE('servicename'), it expands to something like this

long interface(){
servicename serviceinstance;
servicename.CallService();
}

and the HookFun makes and instance of support class which inturn calls interface(), where an instance the required service is created.

services/service* - services, shared libraries build using the support archive, and loaded by the loader

problem:
case 1)
when i load service1, make a call to initilize the service and then unload it, load service 2 make a call and then unload it, ....

everything is fine.

case 2) if i load service1, make a call to initilize the service (dont unload it), load service 2 make a call to initilize it, but this time service 1 is getting initilized again, service 1 is initilized as many services are there..

(my requirement is that i have to keep all the serivces in mermory at the same time)

output for first case:

The address of the loaded function is 2139010832
the buffer content is service1.sl
got addre for proc and it is 2138878086
Dispatch function called with name service1.sl
Support initilizing
Initilizing class service 1
Service called for service1
The address of the loaded function is 2139010832
the buffer content is service2.sl
got addre for proc and it is 2138878070
Dispatch function called with name service2.sl
Support initilizing
Initilizing class service 2
Service called for service 2
The address of the loaded function is 2139010832
the buffer content is service3.sl
got addre for proc and it is 2138878086
Dispatch function called with name service3.sl
Support initilizing
Initilizing class service 3
Service called for service 3

output for second case: (removed shl_unload)
The address of the loaded function is 2139010832
the buffer content is service1.sl
got addre for proc and it is 2138878086
Dispatch function called with name service1.sl
Support initilizing
Initilizing class service 1
Service called for service1
The address of the loaded function is 2139012144
the buffer content is service2.sl
got addre for proc and it is 2139003802
Dispatch function called with name service2.sl
Support initilizing
Initilizing class service 1
Service called for service1
The address of the loaded function is 2139012472
the buffer content is service3.sl
got addre for proc and it is 2139004250
Dispatch function called with name service3.sl
Support initilizing
Initilizing class service 1
Service called for service1

the code i have attached is very simple, please let me know where i am going wrong.. i am executing the program on hpux 10.0 machine and it is patches properly.

thankx in advance
 

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

5. UNIX for Advanced & Expert Users

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... (2 Replies)
Discussion started by: JamesByars
2 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. AIX

Loaded Shared Libraries

Hi, I have a problem about loaded shared libraries. I'm issuing ‘procldd' for a process and AIX shows me the loaded shared libraries. I'm collecting these libraries and counting their size. They were 350MB. After this, I'm issuing ‘ps vx' and I'm seeing that the process takes 130MB from AIX's... (1 Reply)
Discussion started by: jhatzics
1 Replies

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

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

10. Programming

C/C++ shared libraries on Linux.

This is the first time that I created a dynamic library in linux and although the program works, I do not get the correct information about the library when executing ldd. I explain the details: 1) Source code: bye_fn.c: #include <stdio.h> #include "hello.h" void bye (const char*... (9 Replies)
Discussion started by: jose_spain
9 Replies
svcs(1)                                                                                                                                    svcs(1)

NAME
svcs - report service status SYNOPSIS
svcs [-aHpv?] [-o col[,col]...] [-R instance_FMRI]... [-sS col]... [FMRI | pattern] ... svcs {-d | -D} [-Hpv?] [-o col[,col]...] [-sS col]... [FMRI | pattern] ... svcs -l [FMRI | pattern] ... svcs -x [-v] [FMRI]... The svcs command displays information about service instances as recorded in the service configuration repository. The first form prints one-line status listings for service instances specified by the arguments. Each instance is listed only once. With no arguments, all enabled service instances, even if temporarily disabled, are listed with the columns indicated below. The second form prints one-line sta- tus listings for the dependencies or dependents of the service instances specified by the arguments. The third form prints detailed infor- mation about specific services and instances. The fourth form explains the states of service instances. For each argument, a block of human-readable text is displayed which explains what state the service is in, and why it is in that state. With no arguments, problematic services are described. Error messages are printed to the standard error stream. The following options are supported: -? Displays an extended usage message, including column specifiers. -a Show all services, even disabled ones. This option has no effect if services are selected. -d Lists the services or service instances upon which the given service instances depend. -D Lists the service instances that depend on the given services or service instances. -H Omits the column headers. -l (The letter ell.) Displays all available information about the selected services and service instances, with one service attribute displayed for each line. Information for different instances are separated by blank lines. The following specific attributes require further explanation: dependency Information about a dependency. The grouping and restart_on properties are displayed first and are separated by a/. Next, each entity and its state is listed. See smf(5) for information about states. In addition to the standard states, each service dependency can have the following state descriptions: absent No such service is defined on the system. invalid The FMRI is invalid. multiple The entity is a service with multiple instances. File dependencies can only have one of the following state descriptions: absent No such file on the system. online The file exists. If the file did not exist the last time that svc.startd evaluated the service's dependencies, it can con- sider the dependency to be unsatisfied. svcadm refresh forces dependency re-evaluation. unknown stat(2) failed for a reason other than ENOENT. See smf(5) for additional details about dependencies, grouping, and restart_on values. enabled Whether the service is enabled or not, and whether it is enabled or disabled temporarily (until the next system reboot). The former is specified as either true or false, and the latter is designated by the presence of (tem- porary). A service might be temporarily disabled because an administrator has run svcadm disable -t, used "svcadm mile- stone, or booted the system to a specific milestone. See svcadm(1M) for details. -o col[,col]... Prints the specified columns. Each col should be a column name. See COLUMNS below for available columns. -p Lists processes associated with each service instance. A service instance can have no associated processes. The process ID, start time, and command name (PID, STIME, and CMD fields from ps(1)) are displayed for each process. -R instance_FMRI Selects service instances that have the given service instance as their restarter. -s col Sorts output by column. col should be a column name. See COLUMNS below for available columns. Multiple -s options behave additively. -S col Sorts by col in the opposite order as option -s. -v Without -x, displays verbose columns: STATE, NSTATE, STIME, CTID, and FMRI. With -x, displays extra information for each explanation. -x Displays explanations for service states. Without arguments, the -x option explains the states of services which: o are enabled, but are not running. o are preventing another enabled service from running. The following operands are supported: instance_FMRI An FMRI that specifes an instance. FMRI An FMRI that specifes one or more instances. FMRIs can be abbreviated by specifying the instance name, or the trailing por- tion of the service name. For example, given the FMRI: svc:/network/smtp:sendmail The following are valid abbreviations: sendmail :sendmail smtp smtp:sendmail network/smtp The following are invalid abbreviations: mail network network/smt If the FMRI specifies a service, then the command applies to all instances of that service, except when used with the -D option. Abbreviated forms of FMRIs are unstable, and should not be used in scripts or other permanent tools. pattern A pattern that is matched against the FMRIs of service instances according to the "globbing" rules described by fnmatch(5). If the pattern does not begin with svc:, then svc:/ is prepended. COLUMNS
Column names are case insensitive. The default output format is equivalent to "-o state,stime,fmri". The default sorting columns are STATE, STIME, FMRI. CTID The primary contract ID for the service instance. Not all instances have valid primary contract IDs. DESC A brief description of the service, from its template element. A service might not have a description available, in which case a hyphen (-) is used to denote an empty value. FMRI The FMRI of the service instance. INST The instance name of the service instance. NSTA The abbreviated next state of the service instance, as given in the STA column description. A hyphen denotes that the instance is not transitioning. Same as STA otherwise. NSTATE The next state of the service. A hyphen is used to denote that the instance is not transitioning. Same as STATE otherwise. SCOPE The scope name of the service instance. SVC The service name of the service instance. STA The abbreviated state of the service instance: DGD degraded DIS disabled LRC legacy rc*.d script-initiated instance MNT maintenance OFF offline ON online UN uninitialized Absent or unrecognized states are denoted by a question mark (?) character. An asterisk (*) is appended for instances in transition, unless the NSTA or NSTATE column is also being displayed. See smf(5) for an explanation of service states. STATE The state of the service instance. An asterisk is appended for instances in transition, unless the NSTA or NSTATE column is also being displayed. See smf(5) for an explanation of service states. STIME If the service instance entered the current state within the last 24 hours, this column indicates the time that it did so. Otherwise, this column indicates the date on which it did so, printed with underscores (_) in place of blanks. Example 1: Displaying the Default Output This example displays default output: example% svcs STATE STIME FMRI ... legacy_run 13:25:04 lrc:/etc/rc3_d/S42myscript ... online 13:21:50 svc:/system/svc/restarter:default ... online 13:25:03 svc:/milestone/multi-user:default ... online 13:25:07 svc:/milestone/multi-user-server:default ... Example 2: Listing All Local Instances This example lists all local instances of the service1 service. example% svcs -o state,nstate,fmri service1 STATE NSTATE FMRI online - svc:/service1:instance1 disabled - svc:/service1:instance2 Example 3: Listing Verbose Information This example lists verbose information. example% svcs -v smtp STATE NSTATE STIME CTID FMRI online - 13:25:13 141 svc:/network/smtp:sendmail Example 4: Listing Detailed Information This example lists detailed information about all instances of system/service3. Additional fields can be displayed, as appropriate to the managing restarter. example% svcs -l system/service3 fmri svc:/system/service3:default description Example service 3 enabled true state online next_state none restarter svc:/system/svc/restarter:default dependency require_all/refresh svc:/system/service2:default (online) dependency require_all/none svc:/system/service1:default (online) fmri svc:/system/service3:backup description Example service 3 enabled false state disabled next_state none restarter svc:/system/svc/restarter:default dependency require_all svc:/system/service2:backup (absent) Example 5: Listing Processes example% svcs -p sendmail STATE STIME FMRI online 13:25:13 svc:/network/smtp:sendmail 13:25:15 100939 sendmail 13:25:15 100940 sendmail The following exit values are returned: 0 Successful command invocation. 1 Fatal error. 2 Invalid command line options were specified. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |Interface Stability |See below. | +-----------------------------+-----------------------------+ The human readable output is Unstable. The invocation is Evolving. ps(1), svcprop(1), svcadm(1M), svccfg(1M), svc.startd(1M), stat(2), libscf(3LIB), attributes(5), fnmatch(5), smf(5) 18 Mar 2005 svcs(1)
All times are GMT -4. The time now is 06:19 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy