mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-01-30 14:30:15 +08:00
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. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
This commit is contained in:
parent
519bf919cc
commit
3d0fc4870e
11
ChangeLog
11
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.
|
||||
|
@ -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
|
||||
@end deftp
|
||||
|
||||
@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
|
||||
|
||||
@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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user