ldedit Command

Purpose

Modifies an XCOFF executable file header.

Syntax

ldedit -b Option [ -V ] File

Description

You can use the ldedit command to modify various fields in an XCOFF header or the auxiliary header of an executable file. The ldedit command makes it possible to mark or unmark an application as a 'large page data' program. The ldedit command also makes it possible to add or modify the values of MAXDATA and MAXSTACK without relinking.

The format of the -b flag is similar to the format used by the link editor, the ld command. The -b flag can be used multiple times on the command line.

If no flags are specified, the ldedit command displays a usage message using the standard error output.

Flags

Item Description
-b Option Modifies an executable as specified by Option. The possible values for Option are:
datapsize:psize
Requests psize page sizes in bytes for data. The value can be specified as a decimal, hexadecimal, or octal number. The number specifications are the same as in C programming language. Additionally, the page sizes can be specified as a number followed by a one-character suffix:
  • k or K for kilo or 0x400 bytes
  • m or M for mega or 0x100000 bytes
  • g or G for giga or 0x40000000 bytes
  • t or T for tera or 0x10000000000 bytes
  • p or P for peta or 0x4000000000000 bytes
  • x or X for exo or 0x1000000000000000 bytes
For example, either -b datapsize:16k or -b datapsize:0x4000 will request 0x4000 for data and set the F_VARPG bit in the XCOFF header. It is accomplished by setting the corresponding member of the auxiliary header to the logarithm base 2 of the given value psize. If the value is different from 0, the F_VARPG bit of the XCOFF header's f_flags member is also set. Otherwise, this bit is cleared.
forkpolicy:policy
Sets the _AOUT_FORK_POLICY flag in the XCOFF auxiliary header, if File is a 64-bit program. If policy is cor, the _AOUT_FORK_COW is also set, requesting the use of the copy-on-write forktree policy. If policy is cow, the _AOUT_FORK_COW flag is cleared, requesting the use of the copy-on-reference forktree policy. If File is a 32-bit program, no change is made.
noforkpolicy
Resets the _AOUT_FORK_POLICY and _AOUT_FORK_COR flags in the XCOFF auxiliary header, if File is a 64-bit program. The default forktree policy is used, unless a forktree policy is specified with the VMM_CNTRL environment variable. If File is a 32-bit program, no change is made.
lpdata
Marks a file as a 'large page data' executable.
nolpdata
Unmarks a file as a 'large page data' executable.
noshrsymtab
Clears the _AOUT_SHR_SYMTAB flag in the XCOFF auxiliary header. If File is a 32-bit object, no change is made.
maxdata:value
Sets the MAXDATA value. value is an octal number when it starts with 0, a hexadecimal number when it starts with 0x, and a decimal number in all other cases.
maxdata:value/dsa
Sets the MAXDATA value and the DSA bit. value is an octal number when it starts with 0, a hexadecimal number when it starts with 0x, and a decimal number in all other cases.
 
maxstack:value
Sets the MAXSTACK value. value is an octal number when it starts with 0, a hexadecimal number when it starts with 0x, and a decimal number in all other cases.
norwexec
Marks a file's writable and mappable sections and stack as non-executable.
rwexec
Marks a file's writable and mappable sections and stack as executable.
shrsymtab
Sets the _AOUT_SHR_SYMTAB flag in the XCOFF auxiliary header. If File is a 64-bit program, a shared symbol table is created when the program is run. If Flag is a 64-bit object but not a 64-bit program, the _AOUT_SHR_SYMTAB flag can be set, but has no effect at runtime. If File is a 32-bit object, no change is made.
 
stackpsize:psize
Requests psize page sizes in bytes for process main thread stack. The value can be specified as a decimal, hexadecimal, or octal number. The number specifications are the same as in C programming language. Additionally, the page sizes can be specified as a number followed by a one-character suffix:
  • k or K for kilo or 0x400 bytes
  • m or M for mega or 0x100000 bytes
  • g or G for giga or 0x40000000 bytes
  • t or T for tera or 0x10000000000 bytes
  • p or P for peta or 0x4000000000000 bytes
  • x or X for exo or 0x1000000000000000 bytes
For example, either -b stackpsize:16k or -b stackpsize:0x4000 will request 0x4000 for process main thread stack and set the F_VARPG bit in the XCOFF header. It is accomplished by setting the corresponding member of the auxiliary header to the logarithm base 2 of the given value psize. If the value is different from 0, the F_VARPG bit of the XCOFF header's f_flags member is also set. Otherwise, this bit is cleared.
textpsize:psize
Requests psize page sizes in bytes for text. The value can be specified as a decimal, hexadecimal, or octal number. The number specifications are the same as in C programming language. Additionally, the page sizes can be specified as a number followed by a one-character suffix:
  • k or K for kilo or 0x400 bytes
  • m or M for mega or 0x100000 bytes
  • g or G for giga or 0x40000000 bytes
  • t or T for tera or 0x10000000000 bytes
  • p or P for peta or 0x4000000000000 bytes
  • x or X for exo or 0x1000000000000000 bytes
For example, either -b textpsize:16k or -b textpsize:0x4000 will request 0x4000 for text and set the F_VARPG bit in the XCOFF header. It is accomplished by setting the corresponding member of the auxiliary header to the logarithm base 2 of the given value psize. If the value is different from 0, the F_VARPG bit of the XCOFF header's f_flags member is also set. Otherwise, this bit is cleared.
-V Prints the version of the ldedit command on the standard error output.

Example

  1. To request system-selected page sizes for text, data, and stacks, enter:
    ldedit -b textpsize:0 -b datapsize:0 -b stackpsize:0
    This clears the F_VARPG bit in the XCOFF header.