Sponsored Content
Top Forums UNIX for Advanced & Expert Users -pg incompatible with -shared Post 302094965 by Corona688 on Thursday 2nd of November 2006 09:45:32 AM
Old 11-02-2006
The error message means what it says -- gprof won't work for shared libraries. It's not a bug, gprof's just not meant for it. You'll need to link it statically or use something else.

If you use Linux, you might find sysprof useful. It'd probably do better on shared libraries than executables since shared libraries by definition have symbol information...
 

8 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

rpc.rstatd: incompatible...

Hi, I'm working with Mercury tools: Loadrunner, and I'm trying to monitor a unix server by rstatd, and I got next error: Mar 4 11:25:56 sacindt rpc.rstatd: incompatible to /proc. Could not read disk_io: data does any one have an idea about this.. regards (0 Replies)
Discussion started by: toto2000ff
0 Replies

2. UNIX for Advanced & Expert Users

UNIX patches with incompatible packages

I have a Sun Sparc machine with Solaris 9 on it as oracle server. We added two patches (112233-11: SunOS 5.9:Kernel Patch and 111722-04: SunOS 5.9:MathLibrary(libm)patch). When I prepared the server for Oracle installation, I checked patch with command: $/usr/sbin/patchadd -p | grep <patch_number>.... (0 Replies)
Discussion started by: duke0001
0 Replies

3. Programming

gcc 4.3.2 accept sys call warrning incompatible pointer type

Hi all, this warning is driving me nuts. I use -pedantic with -Wall and -Werror so this needs to be fixed. BUILD: GNU-Linux-x86 Any ideas? struct sockaddr_in server_addr; int addr_len = sizeof (server_addr); fd = accept(link->socket_fd, (struct sockaddr_in *)... (2 Replies)
Discussion started by: personificator
2 Replies

4. Programming

GCC - Incompatible Pointer Types

Hi guys, here is my code written in C and the compiler error message. int i; int (*a); for (i = 1;i <= 9;i++) a = (int *)malloc(sizeof(int) * 10);here is the error: incompatible types when assigning to type ‘int’ from type ‘int *’I want to make a two dimensional array. I... (2 Replies)
Discussion started by: majid.merkava
2 Replies

5. Programming

Shared library with acces to shared memory.

Hello. I am new to this forum and I would like to ask for advice about low level POSIX programming. I have to implement a POSIX compliant C shared library. A file will have some variables and the shared library will have some functions which need those variables. There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies

6. Red Hat

Incompatible Level of gcc?

I'm compiling an application someone gave me. It uses XLC on a Power7, running Red Hat (4? 5?). It compiles and links, but I get the following message for every .o and .exe... xlc_r: 1501-274 (W) An incompatible level of gcc has been specified. I've tried googling on this error, and I'll I... (2 Replies)
Discussion started by: Harper21
2 Replies

7. Programming

Incompatible data type fpos_t in C

This is from a program I wrote over in 1998 that I am trying to compile on a linux machine: void write_line (FILE *fp, int rec_no, line_rec *arec) { fpos_t woffset; woffset = (rec_no - 1) * sizeof(line_rec); fsetpos(fp,&woffset); fwrite(arec,sizeof(line_rec),1,fp); }On the line... (2 Replies)
Discussion started by: wbport
2 Replies

8. Programming

Incompatible types for returned object

I have a function from the Sedgewick's book // return the shortest path from v to s as an Iterable public Iterable<String> pathTo(String v) { Stack<String> path = new Stack<String>(); while (v != null && dist.contains(v)) { path.push(v); v =... (2 Replies)
Discussion started by: yifangt
2 Replies
prelink(8)						      System Manager's Manual							prelink(8)

NAME
prelink - prelink ELF shared libraries and binaries to speed up startup time SYNOPSIS
prelink [OPTION...] [FILES] DESCRIPTION
prelink is a program which modifies ELF shared libraries and ELF dynamically linked binaries, so that the time which dynamic linker needs for their relocation at startup significantly decreases and also due to fewer relocations the run-time memory consumption decreases too (especially number of unshareable pages). Such prelinking information is only used if all its dependant libraries have not changed since prelinking, otherwise programs are relocated normally. prelink first collects ELF binaries which should be prelinked and all the ELF shared libraries they depend on. Then it assigns a unique virtual address space slot for each library and relinks the shared library to that base address. When the dynamic linker attempts to load such a library, unless that virtual address space slot is already occupied, it will map it into the given slot. After this is done, pre- link with the help of dynamic linker resolves all relocations in the binary or library against its dependant libraries and stores the relo- cations into the ELF object. It also stores a list of all dependant libraries together with their checksums into the binary or library. For binaries, it also computes a list of conflicts (relocations which resolve differently in the binary's symbol search scope than in the smaller search scope in which the dependant library was resolved) and stores it into a special ELF section. At runtime, the dynamic linker first checks whether all dependant libraries were successfully mapped into their designated address space slots and whether they have not changed since the prelinking was done. If all checks are successful, the dynamic linker just replays the list of conflicts (which is usually significantly shorter than total number of relocations) instead of relocating each library. OPTIONS
-v --verbose Verbose mode. Print the virtual address slot assignment to libraries and print what binary or library is currently being prelinked. -n --dry-run Don't actually prelink anything, just collect the binaries/libraries, assign them addresses and with -v print what would be pre- linked. -a --all Prelink all binaries and dependant libraries found in directory hierarchies specified in /etc/prelink.conf. Normally only binaries specified from command line and their dependant libraries are prelinked. -m --conserve-memory When assigning addresses to libraries, allow overlap of address space slots provided that the two libraries are not present together in any of the binaries or libraries. This results in smaller virtual address space range used for libraries, on the other side if during incremental prelinking prelink sees a binary which puts together two libraries which were not present together in any other binary and were given the same virtual address space slots, then the binary cannot be prelinked. Normally each library is assigned a unique virtual address space slot. -R --random When assigning addresses to libraries, start with random address within architecture dependant virtual address space range. This can make some buffer overflow attacks slightly harder to exploit, because libraries are not present on the same addresses accross different machines. Normally, assigning virtual addresses starts at the bottom of architecture dependant range. -r --reloc-only=ADDRESS Instead of prelinking, just relink given shared libraries to the specified base address. -N --no-update-cache Don't save cache file after prelinking. Normally, list of libraries (and with -m binaries also) is stored into /etc/prelink.cache file together with their given address space slots and dependencies, so it can be used during incremental prelinking (prelinking without -a option). -c --config-file=CONFIG Specify alternate config file instead of default /etc/prelink.conf. -C --cache-file=CACHE Specify alternate cache file instead of default /etc/prelink.cache. -f --force Force re-prelinking even for already prelinked objects for which no dependencies changed. This option causes new virtual address space slots to be assigned to all libraries. Normally, only binaries or libraries which are either not prelinked yet, or some of their dependencies changed, are prelinked. -p --print-cache Print the content of the cache file (normally /etc/prelink.conf) and exit. --dynamic-linker=LDSO Specify alternate dynamic linker instead of the default. --ld-library-path=PATH Specify special LD_LIBRARY_PATH to be used when prelink queries dynamic linker about symbol resolution details. --libs-only Only prelink ELF shared libraries, don't prelink any binaries. -h --dereference When processing command line directory arguments, follow symbolic links when walking directory hierarchies. -l --one-file-system When processing command line directory arguments, limit directory tree walk to a single filesystem. -u --undo Revert binaries and libraries to their original content before they were prelinked. Without -a option this causes only the binaries and libraries specified on the command line to be reverted to their original state (and e.g. not their dependencies). If used together with -a option all binaries and libraries from command line, all their dependencies, all binaries found in directories specified on command line and in config file and all their dependencies will be undone. -y --verify Verifies a prelinked binary or library. This option can be used only on a single binary or library. It first applies an --undo operation on the file, then prelinks just that file again and compares this with the original file. If both are identical, it prints the file after --undo operation on standard output and exit with zero status. Otherwise it exits with error status. Thus if --ver- ify operation returns zero exit status and its standard output is equal to the content of the binary or library before prelinking, you can be sure that nobody modified the binaries or libraries after prelinking. Similarly with message digests and checksums (unless you trigger the unprobable case of modified file and original file having the same digest or checksum). -V --version Print version and exit. -? --help Print short help and exit. ARGUMENTS
Command line arguments should be either directory hierarchies (in which case -l and -h options apply), or particular ELF binaries or shared libraries. Unlike when walking directory hierarchies, specifying a shared library explicitely on the command line causes it to be pre- linked even if no binary is linked against it. Normally, only binaries are collected together with all libraries they depend on. EXAMPLES
# /usr/sbin/prelink -avmR will prelink all binaries found in directories specified in /etc/prelink.conf and all their dependant libraries, assigning libraries unique virtual address space slots only if they ever appear together and will start assigning at random address. # /usr/sbin/prelink -vm ~/bin/progx will prelink ~/bin/progx program and all its dependant libraries (unless they were prelinked already e.g. during prelink -a invocation). # /usr/sbin/prelink -au will revert all binaries and libraries to their original content. # /usr/sbin/prelink -y /bin/prelinked_prog > /tmp/original_prog; echo $? will verify whether /bin/prelinked_prog hasn't been changed. FILES
/etc/prelink.cache Binary file containing list of prelinked libraries and/or binaries together with their assigned virtual address space slots and dependencies. You can run /usr/sbin/prelink -p to see what is stored in there. /etc/prelink.conf Configuration file containing a list of directory hierarchies which can contain ELF shared libraries or binaries which should be prelinked. This configuration file is used in -a mode to find binaries which should be prelinked and also no matter whether -a is given or not to limit which dependant shared libraries should be prelinked. If prelink finds a dependant library of some binary or other library which is not present in any of the directories specified in /etc/pre- link.conf and neither in any of the directories specified on the command line, then it cannot be prelinked. Each line of the config file should be either comment starting with #, or directory name. It can be prefixed by -l switch, mean- ing tree walk of the given directory will be only limited to one filesystem, or -h switch, meaning tree walk of the given directory will follow symbolic links. SEE ALSO
ldd(1), ld.so(8). BUGS
prelink Some architectures, including IA-64, HPPA and MIPS are not yet supported. AUTHORS
Jakub Jelinek <jakub@redhat.com>. 14 July 2002 prelink(8)
All times are GMT -4. The time now is 10:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy