Chapter 2 45
What Happens When You Compile and Link a Program
Linking Programs on HP-UX
Table 2-1 32-bit Mode Magic Number Linker Options
An executable file's magic number can also be changed using the chatr
command (see “Changing a Program's Attributes with chatr(1)” on page
104). 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 in the ELF
object file specifies how the file should be loaded.
File Permissions
If no linker errors occur, the linker gives the a.out file
read/write/execute permissions to all users (owner, group, and other). If
errors occurred, 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 other:
$ umask
022
$ ls -l a.out
-rwxr-xr-x 1 michael users 74440 Apr 4 14:38 a.out
To set the magic
number to:
Use this
option:
SHARE_MAGIC -n
DEMAND_MAGIC -q
EXEC_MAGIC -N