This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ld --exclude-symbols problems


Hi Guys,

> Ian wrote:
>
> Personally, since this has now come up twice, I think the manual needs
> to be changed to mention in each option that the option is specific to
> i386 PE.  Right now the manual reads correctly if you read it from top
> to bottom, but many people skip around in an info or HTML file, and
> when you do that the manual is misleading.

Fair enough.  Here is a patch to do just that.

Cheers
        Nick

2003-04-06  Nick Clifton  <nickc at redhat dot com>

	* ld.texinfo (Options): Add a reminder of the target specific
	nature to the description of the i386 PE specific options, for
	readers who have not read all the way through the manual.

Index: ld/ld.texinfo
===================================================================
RCS file: /cvs/src/src/ld/ld.texinfo,v
retrieving revision 1.91
diff -c -3 -p -w -r1.91 ld.texinfo
*** ld/ld.texinfo	1 Apr 2003 15:50:25 -0000	1.91
--- ld/ld.texinfo	6 Apr 2003 09:29:14 -0000
*************** values by either a space or an equals si
*** 1664,1681 ****
--- 1664,1684 ----
  @item --add-stdcall-alias
  If given, symbols with a stdcall suffix (@@@var{nn}) will be exported
  as-is and also with the suffix stripped.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --base-file
  @item --base-file @var{file}
  Use @var{file} as the name of a file in which to save the base
  addresses of all the relocations needed for generating DLLs with
  @file{dlltool}.
+ [This is an i386 PE specific option]
  
  @kindex --dll
  @item --dll
  Create a DLL instead of a regular executable.  You may also use
  @option{-shared} or specify a @code{LIBRARY} in a given @code{.def}
  file.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --enable-stdcall-fixup
  @kindex --disable-stdcall-fixup
*************** to be usable.  If you specify @option{--
*** 1694,1699 ****
--- 1697,1703 ----
  feature is fully enabled and warnings are not printed.  If you specify
  @option{--disable-stdcall-fixup}, this feature is disabled and such
  mismatches are considered to be errors.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @cindex DLLs, creating
  @kindex --export-all-symbols
*************** These cygwin-excludes are: @code{_cygwin
*** 1720,1730 ****
--- 1724,1736 ----
  @code{_fmode}, @code{_impure_ptr}, @code{cygwin_attach_dll}, 
  @code{cygwin_premain0}, @code{cygwin_premain1}, @code{cygwin_premain2},
  @code{cygwin_premain3}, and @code{environ}. 
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --exclude-symbols
  @item --exclude-symbols @var{symbol},@var{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]
  
  @kindex --exclude-libs
  @item --exclude-libs @var{lib},@var{lib},...
*************** exported. The library names may be delim
*** 1733,1744 ****
--- 1739,1752 ----
  @code{--exclude-libs ALL} excludes symbols in all archive libraries from
  automatic export. Symbols explicitly listed in a .def file are still exported,
  regardless of this option. 
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --file-alignment
  @item --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]
  
  @cindex heap size
  @kindex --heap
*************** file offsets which are multiples of this
*** 1747,1752 ****
--- 1755,1761 ----
  Specify the amount 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]
  
  @cindex image base
  @kindex --image-base
*************** is loaded.  To reduce the need to reloca
*** 1757,1791 ****
--- 1766,1808 ----
  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]
  
  @kindex --kill-at
  @item --kill-at
  If given, the stdcall suffixes (@@@var{nn}) will be stripped from
  symbols before they are exported.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --major-image-version
  @item --major-image-version @var{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]
  
  @kindex --major-os-version
  @item --major-os-version @var{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]
  
  @kindex --major-subsystem-version
  @item --major-subsystem-version @var{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]
  
  @kindex --minor-image-version
  @item --minor-image-version @var{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]
  
  @kindex --minor-os-version
  @item --minor-os-version @var{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]
  
  @kindex --minor-subsystem-version
  @item --minor-subsystem-version @var{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]
  
  @cindex DEF files, creating
  @cindex DLLs, creating
*************** file corresponding to the DLL the linker
*** 1796,1801 ****
--- 1813,1819 ----
  (which should be called @code{*.def}) may be used to create an import
  library with @code{dlltool} or may be used as a reference to
  automatically or implicitly exported symbols.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @cindex DLLs, creating
  @kindex --out-implib
*************** import lib (which should be called @code
*** 1806,1811 ****
--- 1824,1830 ----
  may be used to link clients against the generated DLL; this behavior
  makes it possible to skip a separate @code{dlltool} import library
  creation step.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --enable-auto-image-base
  @item --enable-auto-image-base
*************** using the @code{--image-base} argument. 
*** 1814,1825 ****
--- 1833,1846 ----
  from the dllname to create unique image bases for each DLL, in-memory
  collisions and relocations which can delay program execution are
  avoided.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --disable-auto-image-base
  @item --disable-auto-image-base
  Do not automatically generate a unique image base.  If there is no
  user-specified image base (@code{--image-base}) then use the platform
  default.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @cindex DLLs, linking to
  @kindex --dll-search-prefix
*************** search for @code{<string><basename>.dll}
*** 1830,1835 ****
--- 1851,1857 ----
  between DLLs built for the various "subplatforms": native, cygwin,
  uwin, pw, etc.  For instance, cygwin DLLs typically use
  @code{--dll-search-prefix=cyg}. 
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --enable-auto-import
  @item --enable-auto-import
*************** A fourth way to avoid this problem is to
*** 1949,1959 ****
--- 1971,1983 ----
  library to use a functional interface rather than a data interface
  for the offending variables (e.g. set_foo() and get_foo() accessor
  functions).
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --disable-auto-import
  @item --disable-auto-import
  Do not attempt to do sophisticalted linking of @code{_symbol} to 
  @code{__imp__symbol} for DATA imports from DLLs.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --enable-runtime-pseudo-reloc
  @item --enable-runtime-pseudo-reloc
*************** If your code contains expressions descri
*** 1961,1980 ****
--- 1985,2008 ----
  that is, DATA imports from DLL with non-zero offset, this switch will create
  a vector of 'runtime pseudo relocations' which can be used by runtime
  environment to adjust references to such data in your client code. 
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --disable-runtime-pseudo-reloc
  @item --disable-runtime-pseudo-reloc
  Do not create pseudo relocations for non-zero offset DATA imports from
  DLLs.  This is the default.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --enable-extra-pe-debug
  @item --enable-extra-pe-debug
  Show additional debug info related to auto-import symbol thunking.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --section-alignment
  @item --section-alignment
  Sets the section alignment.  Sections in memory will always begin at
  addresses which are a multiple of this number.  Defaults to 0x1000.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @cindex stack size
  @kindex --stack
*************** addresses which are a multiple of this n
*** 1983,1988 ****
--- 2011,2017 ----
  Specify the amount of memory to reserve (and optionally commit) to be
  used as stack for this program.  The default is 2Mb reserved, 4K
  committed.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @kindex --subsystem
  @item --subsystem @var{which}
*************** Specifies the subsystem under which your
*** 1992,1997 ****
--- 2021,2027 ----
  legal values for @var{which} are @code{native}, @code{windows},
  @code{console}, and @code{posix}.  You may optionally set the
  subsystem version also.
+ [This option is specific to the i386 PE targeted port of the linker]
  
  @end table
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]