]> git.saurik.com Git - apple/ld64.git/blobdiff - doc/man/man1/ld.1
ld64-127.2.tar.gz
[apple/ld64.git] / doc / man / man1 / ld.1
index d4d13294f356a13d25e0e2c6d9d3962c103896b3..03f257ad95a8750fe0f2f17845d2b50c3d3efbba 100644 (file)
@@ -1,4 +1,4 @@
-.Dd Sept 2, 2010
+.Dd March 7, 2011
 .Dt ld 1
 .Os Darwin
 .Sh NAME
@@ -295,6 +295,8 @@ need to be listed.
 By default the linker moves all zero fill sections to the end of the __DATA segment and configures
 them to use no space on disk.  This option suppresses that optimization, so zero-filled data occupies
 space on disk in a final linked image.
+.It Fl merge_zero_fill_sections
+Causes all zero-fill sections in the __DATA segment to be merged into one __zerofill section.
 .El
 .Ss Options when creating a dynamic library (dylib) 
 .Bl -tag
@@ -331,9 +333,9 @@ This option is also called -dylib_current_version for compatibility.
 This makes a special kind of main executable that is position independent (PIE).  On Mac OS X 10.5 and later, the OS
 the OS will load a PIE at a random address each time it is executed.  You cannot create a PIE from .o files compiled 
 with -mdynamic-no-pic.  That means the codegen is less optimal, but the address randomization adds some 
-security. When targeting Mac OS X 10.7 or later PIE is the default for x86_64 main executables.
+security. When targeting Mac OS X 10.7 or later PIE is the default for main executables.
 .It Fl no_pie
-Do not make a position independent executable (PIE).  This is the default, except for x86_64 for 10.7 or later.
+Do not make a position independent executable (PIE).  This is the default, when targeting 10.6 and earlier.
 .It Fl pagezero_size Ar size
 By default the linker creates an unreadable segment starting at address zero named __PAGEZERO.  Its existence
 will cause a bus error if a NULL pointer is dereferenced.  The argument
@@ -509,14 +511,10 @@ of wildcards.
 .Bl -tag
 .It Fl v
 Prints the version of the linker.
-.It Fl no_compact_linkedit
-Normally when targeting Mac OS X 10.6, the linker will generate compact information 
-in the __LINKEDIT segment.
-This option causes the linker to instead produce traditional relocation information.
 .It Fl allow_heap_execute
 Normally i386 main executables will be marked so that the Mac OS X 10.7 and later kernel 
 will only allow pages with the x-bit to execute instructions. This option overrides that
-behavior and allows instructions on any page to be run.
+behavior and allows instructions on any page to be executed.
 .It Fl no_eh_labels
 Normally in -r mode, the linker produces .eh labels on all FDEs in the __eh_frame section.
 This option suppresses those labels.  Those labels are not needed by the Mac OS X 10.6
@@ -687,6 +685,10 @@ option is used, the temporary file will be stored at the specified path and rema
 is complete.  Without the option, the linker picks a path and deletes the object file before the linker 
 tool completes, thus tools such as the debugger or dsymutil will not be able to access the DWARF debug
 info in the temporary object file.
+.It Fl page_align_data_atoms
+During development, this option can be used to space out all global variables so each is on a separate page. 
+This is useful when analyzing dirty and resident pages.  The information can then be used to create an 
+order file  to cluster commonly used/dirty globals onto the same page(s).
 .El
 .Ss Obsolete Options
 .Bl -tag