]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
Fix incompatible struct declarations.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sun, 4 Apr 2010 08:56:27 +0000 (10:56 +0200)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Fri, 9 Apr 2010 19:37:09 +0000 (21:37 +0200)
* doc/libtool.texi (Dlpreopening): Remove broken documentation
of lt_dlsymbol and lt_dlsymlist.  Document typedef lt_dlsymlist
and symbol lt_preloaded_symbols according to the implementation.
* tests/demo/dlmain.c (lt_symlist): Make struct anonymous ...
(lt_dlsymlist): ... and typedef to this name.
(lt_preloaded_symbols, main): Adjust.
* tests/pdemo/longer_file_name_dlmain.c: Likewise.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ChangeLog
doc/libtool.texi
tests/demo/dlmain.c
tests/pdemo/longer_file_name_dlmain.c

index 4e274ea7caf7935715db29ae134d400e1a7ee78c..84c0bc3f7198607542fe7ec489850a61e83740b3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2010-04-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Fix incompatible struct declarations.
+       * doc/libtool.texi (Dlpreopening): Remove broken documentation
+       of lt_dlsymbol and lt_dlsymlist.  Document typedef lt_dlsymlist
+       and symbol lt_preloaded_symbols according to the implementation.
+       * tests/demo/dlmain.c (lt_symlist): Make struct anonymous ...
+       (lt_dlsymlist): ... and typedef to this name.
+       (lt_preloaded_symbols, main): Adjust.
+       * tests/pdemo/longer_file_name_dlmain.c: Likewise.
+
 2010-04-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        Use linker_flags not compiler_flags with $LD.
index 323bf4e5dc17630fdb8bc5ffb8bdc8bca5187bf9..f73f5a7db0801aa277d5b40521c19be3b4643ec8 100644 (file)
@@ -3388,25 +3388,15 @@ you must declare the objects you want your application to dlopen by
 using the @option{-dlopen} or @option{-dlpreopen} flags when you link your
 program (@pxref{Link mode}).
 
-@deftypefn {Structure} {struct} lt_dlsymbol @{ @w{const char *@var{name};} @w{void *@var{address};} @}
+@deftp {Data Type} {lt_dlsymlist} typedef struct @
+  @{ @w{const char *@var{name};} @w{void *@var{address};} @} lt_dlsymlist
 The @var{name} attribute is a null-terminated character string of the
 symbol name, such as @code{"fprintf"}.  The @var{address} attribute is a
 generic pointer to the appropriate object, such as @code{&fprintf}.
-@end deftypefn
-
-@deftypefn {Structure} {struct} lt_dlsymlist @{ @w{const char *@var{originator};} @w{const lt_dlsymbol @var{symbols}[];} @}
-The @var{originator} attribute is a null-terminated character string,
-naming the compilation unit that @var{symbols} were preloaded on
-behalf of.  This is usually the basename of a library,
-@file{libltdl.la} has a corresponding @var{originator} value of
-@samp{libltdl}; if the @var{symbols} are for the benefit of the
-application proper, then @var{originator} is @samp{@@PROGRAM@@},
-though Libtool takes care of that detail if you use
-@samp{LTDL_SET_PRELOADED_SYMBOLS}.
-@end deftypefn
+@end deftp
 
-@deftypevar {const lt_dlsymlist *} lt_preloaded_symbols
-An array of @var{lt_symbol} structures, representing all the preloaded
+@deftypevar {const lt_dlsymlist } lt_preloaded_symbols[]
+An array of @var{lt_dlsymlist} structures, representing all the preloaded
 symbols linked into the program proper.  For each module
 @option{-dlpreopen}ed by the Libtool linked program
 there is an element with the @var{name} of the module and an @var{address}
@@ -3414,6 +3404,10 @@ of @code{0}, followed by all symbols exported from this file.
 For the executable itself the special name @samp{@@PROGRAM@@} is used.
 The last element of all has a @var{name} and @var{address} of
 @code{0}.
+
+To facilitate inclusion of symbol lists into libraries,
+@code{lt_preloaded_symbols} is @samp{#define}d to a suitably unique name
+in @file{ltdl.h}.
 @end deftypevar
 
 Some compilers may allow identifiers that are not valid in ANSI C, such
index 0d42d88118071bbb4772b36e3158548a0d5652b1..c970998d4cb0db9574f4fb92c9ad6c9429e4164f 100644 (file)
@@ -1,6 +1,7 @@
 /* dlmain.c -- hello test program that uses simulated dynamic linking
 
-   Copyright (C) 1996-1999, 2004, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1996-1999, 2004, 2006, 2007, 2010 Free Software
+   Foundation, Inc.
 
    This file is part of GNU Libtool.
 
@@ -27,18 +28,18 @@ or obtained by writing to the Free Software Foundation, Inc.,
 
 #define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols
 
-struct lt_symlist
+typedef struct
 {
   const char *name;
   lt_ptr_t address;
-};
+} lt_dlsymlist;
 
-extern const struct lt_symlist lt_preloaded_symbols[];
+extern const lt_dlsymlist lt_preloaded_symbols[];
 
 int
 main ()
 {
-  const struct lt_symlist *s;
+  const lt_dlsymlist *s;
   int (*pfoo)() = 0;
   int (*phello)() = 0;
   int *pnothing = 0;
index fdb552661b763b2990e872cce8af4855044875b3..ef1e4c5b44937c55b8300ba8251870da0f1291bb 100644 (file)
@@ -1,6 +1,7 @@
 /* dlmain.c -- hello test program that uses simulated dynamic linking
 
-   Copyright (C) 1996-1999, 2004, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1996-1999, 2004, 2006, 2007, 2010 Free Software
+   Foundation, Inc.
 
    This file is part of GNU Libtool.
 
@@ -27,18 +28,18 @@ or obtained by writing to the Free Software Foundation, Inc.,
 
 #define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols
 
-struct lt_symlist
+typedef struct
 {
   const char *name;
   lt_ptr_t address;
-};
+} lt_dlsymlist;
 
-extern const struct lt_symlist lt_preloaded_symbols[];
+extern const lt_dlsymlist lt_preloaded_symbols[];
 
 int
 main (int argc, char **argv)
 {
-  const struct lt_symlist *s;
+  const lt_dlsymlist *s;
   int (*pfoo)() = 0;
   int (*phello)() = 0;
   int *pnothing = 0;