HP UX Software Transition Kit (STK) manual Linking with Libraries, File Permissions

Models: UX Software Transition Kit (STK)

1 228
Download 228 pages 54.84 Kb
Page 23
Image 23

program does not need to be loaded; however, it can degrade performance throughout execution.

EXEC_MAGIC Neither the program's text nor data is shareable. In other words, the program is an unshared executable. Usually, it is not desirable to create such unshared executables because they place greater demands on memory resources.

By default, the linker creates executables whose magic number is SHARE_MAGIC. Table 2 (page

23)shows which linker option to use to specifically set the magic number.

Table 2 32-bit Mode Magic Number Linker Options

To set the magic number to

Use the option

SHARE_MAGIC

-n

DEMAND_MAGIC

-q

EXEC_MAGIC

-N

An executable file's magic number can also be changed using the chatr command (see “Changing a Program's Attributes with chatr(1)” (page 53) ). However, chatr can only toggle between SHARE_MAGIC and DEMAND_MAGIC; it cannot be used to change from or to EXEC_MAGIC. This is because the file format of SHARE_MAGIC and DEMAND_MAGIC is exactly the same, while EXEC_MAGIC files have a different format. For details on magic numbers, refer to magic(4).

In 64-bit mode, the linker sets the magic number to the predefined type for ELF object files

(\177ELF). The value of the e_type field in the ELF object file header specifies how the file should be loaded.

File Permissions

If linker errors do not occur, the linker gives the a.out file read/write/execute permissions to all users (owner, group, and other). If errors occur, the linker gives read/write permissions to all users. Permissions are further modified if the umask is set (see umask(1)). For example, on a system with umask set to 022, a successful link produces an a.out file with read/write/execute permissions for the owner, and read/execute permissions for group and others:

$ umask 022

$ ls -l a.out -rwxr-xr-x

1michael users

74440 Apr

4 14:38 a.out

Linking with Libraries

“Library Naming Conventions” (page 24)

“Default Libraries” (page 24)

“Link Order” (page 24)

In addition to matching external references to global definitions in object files, the linker (ld) matches external references to global definitions in libraries. A library is a file containing object code for subroutines and data that can be used by other programs. For example, the standard C library, libc, contains object code for functions that can be used by C, C++, FORTRAN, and Pascal programs to do input, output, and other standard operations.

Linking with Libraries

23

Page 23
Image 23
HP UX Software Transition Kit (STK) manual Linking with Libraries, File Permissions, bit Mode Magic Number Linker Options