Home Explore Blog CI



man-pages

40th chunk of `ld.man`
8fa8e0284895d44848ae04822753d3561bd483bdf6b419220000000100000fa3
  These cygwin‐excludes
           are: "_cygwin_dll_entry@12", "_cygwin_crt0_common@8", "_cygwin_noncygwin_dll_entry@12", "_fmode", "_impure_ptr", "cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2", "cygwin_premain3", and
           "environ".  [This option is specific to the i386 PE targeted port of the linker]

       --exclude-symbols symbol,symbol,...
           Specifies a list of symbols which should not be automatically exported.  The symbol names may be delimited by commas or colons.  [This option is specific to the i386 PE targeted port of the linker]

       --exclude-all-symbols
           Specifies no symbols should be automatically exported.  [This option is specific to the i386 PE targeted port of the linker]

       --file-alignment
           Specify the file alignment.  Sections in the file will always begin at file offsets which are multiples of this number.  This defaults to 512.  [This option is specific to the i386 PE targeted port of the linker]

       --heap reserve
       --heap reserve,commit
           Specify the number of bytes of memory to reserve (and optionally commit) to be used as heap for this program.  The default is 1MB reserved, 4K committed.  [This option is specific to the i386 PE targeted  port  of
           the linker]

       --image-base value
           Use value as the base address of your program or dll.  This is the lowest memory location that will be used when your program or dll is loaded.  To reduce the need to relocate and improve performance of your dlls,
           each should have a unique base address and not overlap any other dlls.  The default is 0x400000 for executables, and 0x10000000 for dlls.  [This option is specific to the i386 PE targeted port of the linker]

       --kill-at
           If given, the stdcall suffixes (@nn) will be stripped from symbols before they are exported.  [This option is specific to the i386 PE targeted port of the linker]

       --large-address-aware
           If given, the appropriate bit in the "Characteristics" field of the COFF header is set to indicate that this executable supports virtual addresses greater than 2 gigabytes.  This should be used in conjunction with
           the /3GB or /USERVA=value megabytes switch in the "[operating systems]" section of the BOOT.INI.  Otherwise, this bit has no effect.  [This option is specific to PE targeted ports of the linker]

       --disable-large-address-aware
           Reverts  the effect of a previous --large-address-aware option.  This is useful if --large-address-aware is always set by the compiler driver (e.g. Cygwin gcc) and the executable does not support virtual addresses
           greater than 2 gigabytes.  [This option is specific to PE targeted ports of the linker]

       --major-image-version value
           Sets the major number of the "image version".  Defaults to 1.  [This option is specific to the i386 PE targeted port of the linker]

       --major-os-version value
           Sets the major number of the "os version".  Defaults to 4.  [This option is specific to the i386 PE targeted port of the linker]

       --major-subsystem-version value
           Sets the major number of the "subsystem version".  Defaults to 4.  [This option is specific to the i386 PE targeted port of the linker]

       --minor-image-version value
           Sets the minor number of the "image version".  Defaults to 0.  [This option is specific to the i386 PE targeted port of the linker]

       --minor-os-version value
           Sets the minor number of the "os version".  Defaults to 0.  [This option is specific to the i386 PE targeted port of the linker]

       --minor-subsystem-version value
           Sets the minor number of the "subsystem version".  Defaults to 0.  [This option is specific to the i386 PE targeted port of the linker]

       --output-def file
           The linker will create the file file which will contain a DEF file corresponding to the DLL

Title: LD (GNU Linker) i386 PE Specific Options: Memory Management, Addressing, and Versioning
Summary
This section details various linker options specific to i386 PE targets. It covers options for excluding symbols from automatic export, setting file alignment, managing heap memory allocation, specifying the image base address, stripping stdcall suffixes, enabling/disabling large address awareness, setting major and minor version numbers for image, OS, and subsystem, and creating a DEF file corresponding to the DLL.