Version 11, interface, binary age 0.

Thu Nov 22 13:14:18 2001  Owen Taylor  <otaylor@redhat.com>

        * configure.in (GLIB_MICRO_VERSION): Version 11,
        interface, binary age 0.

        * NEWS: Updated.

        * tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
        Add dummy -rpath argument. On some (but not all) platforms,
        libtool will only build a convenience library without this.
        (#63486, Dan Winship)

        * Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
        autoconf-2.5x checks for 'make dist' in the tarball
        when you make distcheck.

        * glib/Makefile.am (EXTRA_DIST): Distribute
        makefile.msc/mingw.in, glib.rc.in.

        * tests/patterntest.c: Include string.h.

        * glib/gpattern.c (g_utf8_reverse): doc parsing fix.
This commit is contained in:
Owen Taylor 2001-11-22 18:56:12 +00:00 committed by Owen Taylor
parent e767aa0a4f
commit 4ab50f038b
25 changed files with 262 additions and 427 deletions

View File

@ -1,3 +1,26 @@
Thu Nov 22 13:14:18 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (GLIB_MICRO_VERSION): Version 11,
interface, binary age 0.
* NEWS: Updated.
* tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
Add dummy -rpath argument. On some (but not all) platforms,
libtool will only build a convenience library without this.
(#63486, Dan Winship)
* Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
autoconf-2.5x checks for 'make dist' in the tarball
when you make distcheck.
* glib/Makefile.am (EXTRA_DIST): Distribute
makefile.msc/mingw.in, glib.rc.in.
* tests/patterntest.c: Include string.h.
* glib/gpattern.c (g_utf8_reverse): doc parsing fix.
Thu Nov 22 02:50:18 2001 Tim Janik <timj@gtk.org>
* NEWS: merged with gobject/NEWS.
@ -292,7 +315,7 @@ Mon Oct 29 10:55:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/config.charset (os): Match also mingw*.
* tests/testglib.c (main): (Win32): Print the lib/locale
* tests/testglib.c (main): (Wibn32): Print the lib/locale
subdirectory, as that is what actually gets used.
Wed Oct 24 11:10:54 2001 Owen Taylor <otaylor@redhat.com>

View File

@ -1,3 +1,26 @@
Thu Nov 22 13:14:18 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (GLIB_MICRO_VERSION): Version 11,
interface, binary age 0.
* NEWS: Updated.
* tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
Add dummy -rpath argument. On some (but not all) platforms,
libtool will only build a convenience library without this.
(#63486, Dan Winship)
* Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
autoconf-2.5x checks for 'make dist' in the tarball
when you make distcheck.
* glib/Makefile.am (EXTRA_DIST): Distribute
makefile.msc/mingw.in, glib.rc.in.
* tests/patterntest.c: Include string.h.
* glib/gpattern.c (g_utf8_reverse): doc parsing fix.
Thu Nov 22 02:50:18 2001 Tim Janik <timj@gtk.org>
* NEWS: merged with gobject/NEWS.
@ -292,7 +315,7 @@ Mon Oct 29 10:55:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/config.charset (os): Match also mingw*.
* tests/testglib.c (main): (Win32): Print the lib/locale
* tests/testglib.c (main): (Wibn32): Print the lib/locale
subdirectory, as that is what actually gets used.
Wed Oct 24 11:10:54 2001 Owen Taylor <otaylor@redhat.com>

View File

@ -1,3 +1,26 @@
Thu Nov 22 13:14:18 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (GLIB_MICRO_VERSION): Version 11,
interface, binary age 0.
* NEWS: Updated.
* tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
Add dummy -rpath argument. On some (but not all) platforms,
libtool will only build a convenience library without this.
(#63486, Dan Winship)
* Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
autoconf-2.5x checks for 'make dist' in the tarball
when you make distcheck.
* glib/Makefile.am (EXTRA_DIST): Distribute
makefile.msc/mingw.in, glib.rc.in.
* tests/patterntest.c: Include string.h.
* glib/gpattern.c (g_utf8_reverse): doc parsing fix.
Thu Nov 22 02:50:18 2001 Tim Janik <timj@gtk.org>
* NEWS: merged with gobject/NEWS.
@ -292,7 +315,7 @@ Mon Oct 29 10:55:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/config.charset (os): Match also mingw*.
* tests/testglib.c (main): (Win32): Print the lib/locale
* tests/testglib.c (main): (Wibn32): Print the lib/locale
subdirectory, as that is what actually gets used.
Wed Oct 24 11:10:54 2001 Owen Taylor <otaylor@redhat.com>

View File

@ -1,3 +1,26 @@
Thu Nov 22 13:14:18 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (GLIB_MICRO_VERSION): Version 11,
interface, binary age 0.
* NEWS: Updated.
* tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
Add dummy -rpath argument. On some (but not all) platforms,
libtool will only build a convenience library without this.
(#63486, Dan Winship)
* Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
autoconf-2.5x checks for 'make dist' in the tarball
when you make distcheck.
* glib/Makefile.am (EXTRA_DIST): Distribute
makefile.msc/mingw.in, glib.rc.in.
* tests/patterntest.c: Include string.h.
* glib/gpattern.c (g_utf8_reverse): doc parsing fix.
Thu Nov 22 02:50:18 2001 Tim Janik <timj@gtk.org>
* NEWS: merged with gobject/NEWS.
@ -292,7 +315,7 @@ Mon Oct 29 10:55:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/config.charset (os): Match also mingw*.
* tests/testglib.c (main): (Win32): Print the lib/locale
* tests/testglib.c (main): (Wibn32): Print the lib/locale
subdirectory, as that is what actually gets used.
Wed Oct 24 11:10:54 2001 Owen Taylor <otaylor@redhat.com>

View File

@ -1,3 +1,26 @@
Thu Nov 22 13:14:18 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (GLIB_MICRO_VERSION): Version 11,
interface, binary age 0.
* NEWS: Updated.
* tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
Add dummy -rpath argument. On some (but not all) platforms,
libtool will only build a convenience library without this.
(#63486, Dan Winship)
* Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
autoconf-2.5x checks for 'make dist' in the tarball
when you make distcheck.
* glib/Makefile.am (EXTRA_DIST): Distribute
makefile.msc/mingw.in, glib.rc.in.
* tests/patterntest.c: Include string.h.
* glib/gpattern.c (g_utf8_reverse): doc parsing fix.
Thu Nov 22 02:50:18 2001 Tim Janik <timj@gtk.org>
* NEWS: merged with gobject/NEWS.
@ -292,7 +315,7 @@ Mon Oct 29 10:55:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/config.charset (os): Match also mingw*.
* tests/testglib.c (main): (Win32): Print the lib/locale
* tests/testglib.c (main): (Wibn32): Print the lib/locale
subdirectory, as that is what actually gets used.
Wed Oct 24 11:10:54 2001 Owen Taylor <otaylor@redhat.com>

View File

@ -1,3 +1,26 @@
Thu Nov 22 13:14:18 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (GLIB_MICRO_VERSION): Version 11,
interface, binary age 0.
* NEWS: Updated.
* tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
Add dummy -rpath argument. On some (but not all) platforms,
libtool will only build a convenience library without this.
(#63486, Dan Winship)
* Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
autoconf-2.5x checks for 'make dist' in the tarball
when you make distcheck.
* glib/Makefile.am (EXTRA_DIST): Distribute
makefile.msc/mingw.in, glib.rc.in.
* tests/patterntest.c: Include string.h.
* glib/gpattern.c (g_utf8_reverse): doc parsing fix.
Thu Nov 22 02:50:18 2001 Tim Janik <timj@gtk.org>
* NEWS: merged with gobject/NEWS.
@ -292,7 +315,7 @@ Mon Oct 29 10:55:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/config.charset (os): Match also mingw*.
* tests/testglib.c (main): (Win32): Print the lib/locale
* tests/testglib.c (main): (Wibn32): Print the lib/locale
subdirectory, as that is what actually gets used.
Wed Oct 24 11:10:54 2001 Owen Taylor <otaylor@redhat.com>

View File

@ -1,3 +1,26 @@
Thu Nov 22 13:14:18 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (GLIB_MICRO_VERSION): Version 11,
interface, binary age 0.
* NEWS: Updated.
* tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
Add dummy -rpath argument. On some (but not all) platforms,
libtool will only build a convenience library without this.
(#63486, Dan Winship)
* Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
autoconf-2.5x checks for 'make dist' in the tarball
when you make distcheck.
* glib/Makefile.am (EXTRA_DIST): Distribute
makefile.msc/mingw.in, glib.rc.in.
* tests/patterntest.c: Include string.h.
* glib/gpattern.c (g_utf8_reverse): doc parsing fix.
Thu Nov 22 02:50:18 2001 Tim Janik <timj@gtk.org>
* NEWS: merged with gobject/NEWS.
@ -292,7 +315,7 @@ Mon Oct 29 10:55:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/config.charset (os): Match also mingw*.
* tests/testglib.c (main): (Win32): Print the lib/locale
* tests/testglib.c (main): (Wibn32): Print the lib/locale
subdirectory, as that is what actually gets used.
Wed Oct 24 11:10:54 2001 Owen Taylor <otaylor@redhat.com>

View File

@ -1,3 +1,26 @@
Thu Nov 22 13:14:18 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (GLIB_MICRO_VERSION): Version 11,
interface, binary age 0.
* NEWS: Updated.
* tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS):
Add dummy -rpath argument. On some (but not all) platforms,
libtool will only build a convenience library without this.
(#63486, Dan Winship)
* Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in -
autoconf-2.5x checks for 'make dist' in the tarball
when you make distcheck.
* glib/Makefile.am (EXTRA_DIST): Distribute
makefile.msc/mingw.in, glib.rc.in.
* tests/patterntest.c: Include string.h.
* glib/gpattern.c (g_utf8_reverse): doc parsing fix.
Thu Nov 22 02:50:18 2001 Tim Janik <timj@gtk.org>
* NEWS: merged with gobject/NEWS.
@ -292,7 +315,7 @@ Mon Oct 29 10:55:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/config.charset (os): Match also mingw*.
* tests/testglib.c (main): (Win32): Print the lib/locale
* tests/testglib.c (main): (Wibn32): Print the lib/locale
subdirectory, as that is what actually gets used.
Wed Oct 24 11:10:54 2001 Owen Taylor <otaylor@redhat.com>

32
INSTALL
View File

@ -1,8 +1,8 @@
Simple install procedure
========================
% gzip -cd glib-1.3.10.tar.gz | tar xvf - # unpack the sources
% cd glib-1.3.10 # change to the toplevel directory
% gzip -cd glib-1.3.11.tar.gz | tar xvf - # unpack the sources
% cd glib-1.3.11 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GLIB
@ -46,6 +46,34 @@ A few of the more important ones:
* --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[ Defaults to the value given to --prefix ]
* --enable-gc-friendly When enabled all memory freed by the application,
but retained by GLib for performance reasons
is set to zero, thus making deployed garbage
collection or memory profiling tools detect
unlinked memory correctly. This will make GLib
slightly slower.
[ Disabled by default ]
* --disable-threads Do not compile GLib to be multi thread safe. GLib
will be slightly faster then. This is however not
recommended, as many programs rely on GLib being
multi thread safe.
[ Enabled by default ]
* --with-threads=[none/posix/dce/solaris/win32] Specify a thread
implementation to use.
* 'posix' and 'dce' can be used interchangeable
to mean the different versions of posix
threads. configure tries to find out, which
one is installed.
* 'solaris' uses the native Solaris thread
implementation.
* 'none' means that GLib will be thread safe,
but does not have a default thread
implementation. This has to be supplied to
g_thread_init() by the programmer.
[ Determined by configure by default ]
Options can be given to the compiler and linker by setting
environment variables before running configure. A few of the more
important ones:

View File

@ -16,6 +16,8 @@ EXTRA_DIST = \
NEWS.pre-1-3 \
acglib.m4 \
sanity_check \
README.in \
INSTALL.in \
README.win32 \
TODO.xml \
makefile.msc \

20
NEWS
View File

@ -1,3 +1,23 @@
Overview of Changes in GLib 1.3.11:
===================================
* Win32 fixes [Hans Breuer, Tor Lillqvist]
* Documentation improvements [Matthias Clasen]
* Portable directory handling API [Hans]
* Threading fixes [Sebastian Wilhelmi, Havoc Pennington]
* Fix excess relocations in Unicode tables [Andrew Taylor]
* Fix gpattern for UTF-8 [Matthias Clasen]
* Support overriding class closures [Tim Janik]
* Support for derivation from G_TYPE_POINTER [Owen Taylor]
* Hide pointers to type information inside GType to reduce locking
[Alex Larsson, Tim]
* Adds check for direct inclusion of gobject/*.h [Owen]
* GObject API cleanups [Tim]
Other contributors: Darin Adler, Jacob Berkman, Daniel Egger, Eric Lemings,
Michael Meeks, Mark McLoughlin, Arkadiusz Miskiewicz, Dan Winship
Overview of Changes in GLib 1.3.10:
===================================

2
README
View File

@ -13,7 +13,7 @@ version is meant for developers of GLib only:
General Information
===================
This is GLib version 1.3.10. GLib is a library which includes support
This is GLib version 1.3.11. GLib is a library which includes support
routines for C such as lists, trees, hashes, memory allocation, and
many other things.

View File

@ -33,7 +33,7 @@ GLIB_AC_DIVERT_BEFORE_HELP([
#
GLIB_MAJOR_VERSION=1
GLIB_MINOR_VERSION=3
GLIB_MICRO_VERSION=10
GLIB_MICRO_VERSION=11
GLIB_INTERFACE_AGE=0
GLIB_BINARY_AGE=0
GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION

View File

@ -6,6 +6,9 @@ INCLUDES = -I$(top_srcdir) -DG_LOG_DOMAIN=\"GLib\" \
@GLIB_DEBUG_FLAGS@ -DG_DISABLE_DEPRECATED -DGLIB_COMPILATION
EXTRA_DIST = \
makefile.mingw.in \
makefile.msc.in \
glib.rc.in \
gen-unicode-tables.pl \
glib.def

View File

@ -48,7 +48,7 @@ struct _GPatternSpec
/* --- functions --- */
/**
* g_utf8_reverse:
* string: a UTF-8 string.
* @string: a UTF-8 string.
*
* Reverses a UTF-8 string. The @string must be valid UTF-8 encoded text.
* (Use g_utf8_validate() on all text before trying to use UTF-8

View File

@ -10,10 +10,6 @@ makefile.mingw
_libs
.libs
so_locations
libgmodule-1.3.la
libgplugin_a.la
libgplugin_b.la
gmoduleconf.h
stamp-h
testgmodule
gmodule.rc

View File

@ -1,3 +1,9 @@
Mon Nov 19 16:12:12 2001 Owen Taylor <otaylor@redhat.com>
* Makefile.am makefile.msc.in makefile.mingw.in: Remove
testgmodule and associated plugin files; we don't need _both_ this
and ../tests/module-test.c
2001-11-16 Michael Meeks <michael@ximian.com>
* gmodule.c (parse_libtool_archive): fix leak.

View File

@ -34,7 +34,6 @@ libglib = $(top_builddir)/glib/libglib-1.3.la
top_builddir_full=`cd \$(top_builddir); pwd`
lib_LTLIBRARIES = libgmodule-1.3.la
noinst_LTLIBRARIES = libgplugin_a.la libgplugin_b.la
if MS_LIB_AVAILABLE
noinst_DATA = gmodule-1.3.lib
@ -55,7 +54,6 @@ endif
if OS_WIN32
export_symbols = -export-symbols gmodule.def
plugin_rpath = -rpath `pwd`
install-libtool-import-lib:
$(INSTALL) .libs/libgmodule-1.3.dll.a $(DESTDIR)$(libdir)
@ -76,19 +74,6 @@ libgmodule_1_3_la_LIBADD = @G_MODULE_WIN32_RESOURCE@ @G_MODULE_LIBS_EXTRA@ @G_MO
libgmodule_1_3_la_DEPENDENCIES = @G_MODULE_WIN32_RESOURCE@ @GMODULE_DEF@
libgplugin_a_la_SOURCES = libgplugin_a.c
libgplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module $(no_undefined) $(plugin_rpath)
libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ @G_MODULE_LIBS_EXTRA@ @G_MODULE_PLUGIN_LIBS@ libgmodule-1.3.la $(libglib)
libgplugin_b_la_SOURCES = libgplugin_b.c
libgplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module $(no_undefined) $(plugin_rpath)
libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ @G_MODULE_LIBS_EXTRA@ @G_MODULE_PLUGIN_LIBS@ libgmodule-1.3.la $(libglib)
noinst_PROGRAMS = testgmodule
testgmodule_LDFLAGS += @G_MODULE_LDFLAGS@
testgmodule_LDADD = @TESTGMODULE_EXP@ libgmodule-1.3.la $(libglib) @G_MODULE_LIBS@
testgmodule_DEPENDENCIES = @TESTGMODULE_EXP@
if OS_WIN32
@G_MODULE_WIN32_RESOURCE@ : gmodule.rc
$(top_srcdir)/build/win32/lt-compile-resource gmodule.rc @G_MODULE_WIN32_RESOURCE@

View File

@ -1,73 +0,0 @@
/* libgplugin_a.c - test plugin for testgmodule
* Copyright (C) 1998 Tim Janik
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#include <gmodule.h>
#include <stdlib.h>
G_MODULE_EXPORT void
gplugin_a_func (void)
{
g_print ("GPluginA: Hello world\n");
}
G_MODULE_EXPORT void
gplugin_clash_func (void)
{
g_print ("GPluginA: Hello plugin clash\n");
}
G_MODULE_EXPORT void
g_clash_func (void)
{
g_print ("GPluginA: Hello global clash\n");
}
G_MODULE_EXPORT void
gplugin_say_boo_func (void)
{
g_print ("GPluginA: BOOH!\n");
}
G_MODULE_EXPORT void
gplugin_a_module_func (GModule *module)
{
void (*f) (void) = NULL;
gchar *string;
gchar *basename = g_path_get_basename (g_module_name (module));
string = "gplugin_say_boo_func";
g_print ("GPluginA: retrieve symbol `%s' from \"%s\"\n",
string, basename);
g_free (basename);
if (!g_module_symbol (module, string, (gpointer) &f))
{
g_print ("error: %s\n", g_module_error ());
exit (1);
}
g_print ("GPluginA: call that function(%p): ", f);
f ();
}

View File

@ -1,65 +0,0 @@
/* libgplugin_b.c - test plugin for testgmodule
* Copyright (C) 1998 Tim Janik
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#include <gmodule.h>
G_MODULE_EXPORT const gchar*
g_module_check_init (GModule *module)
{
g_print ("GPluginB: check-init\n");
return NULL;
}
G_MODULE_EXPORT void
g_module_unload (GModule *module)
{
g_print ("GPluginB: unloaded\n");
}
G_MODULE_EXPORT void
gplugin_b_func (void)
{
g_print ("GPluginB: Hello world\n");
}
G_MODULE_EXPORT void
gplugin_clash_func (void)
{
g_print ("GPluginB: Hello plugin clash\n");
}
G_MODULE_EXPORT void
g_clash_func (void)
{
g_print ("GPluginB: Hello global clash\n");
}
G_MODULE_EXPORT void
gplugin_say_boo_func (void)
{
g_print ("GPluginB: BOOH!\n");
}

View File

@ -16,9 +16,7 @@ DEFINES = -DHAVE_CONFIG_H -DG_LOG_DOMAIN=\"GModule\" -DG_ENABLE_DEBUG
all : \
gmoduleconf.h \
libgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.a \
testgmodule.exe \
libgplugin_a.dll libgplugin_b.dll
libgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.a
gmodule_OBJECTS = \
gmodule.o
@ -34,20 +32,6 @@ libgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.a : $(gmodule_OBJECTS) gmod
gmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.rc : gmodule.rc
cp $< $@
################ test prog
testgmodule.exe : libgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.a testgmodule.o
# We have to generate an .exp file separately with dlltool, and link
# with that. Sigh.
dlltool --output-exp testgmodule.exp testgmodule.o
$(CC) $(CFLAGS) -o testgmodule.exe testgmodule.o testgmodule.exp -L ../glib -lglib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@ -L . -lgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@ $(LFLAGS)
libgplugin_a.dll : libgplugin_a.o
$(BUILD_DLL) libgplugin_a - libgplugin_a.o -L ../glib -lglib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@ -L . -lgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@
libgplugin_b.dll : libgplugin_b.o
$(BUILD_DLL) libgplugin_b - libgplugin_b.o -L ../glib -lglib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@ -L . -lgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@
################ Other stuff
clean::

View File

@ -12,8 +12,7 @@ DEFINES = -DHAVE_CONFIG_H -DG_LOG_DOMAIN=\"GModule\"
all : \
gmoduleconf.h \
libgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll \
testgmodule.exe
libgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
gmodule_OBJECTS = \
gmodule.obj
@ -25,19 +24,5 @@ libgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
$(CC) $(CFLAGS) -LD -Fe$@ $(gmodule_OBJECTS) \
..\glib\glib-$(GLIB_VER).lib $(LDFLAGS) /implib:gmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib /def:gmodule.def
################ test prog
testgmodule.exe : libgmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll testgmodule.obj libgplugin_a.dll libgplugin_b.dll
$(CC) $(CFLAGS) testgmodule.obj gmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib \
..\glib\glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib $(LDFLAGS) /subsystem:console
libgplugin_a.dll : libgplugin_a.obj
$(CC) $(CFLAGS) -LD libgplugin_a.obj gmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib \
..\glib\glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib $(LDFLAGS)
libgplugin_b.dll : libgplugin_b.obj
$(CC) $(CFLAGS) -LD libgplugin_b.obj gmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib \
..\glib\glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib $(LDFLAGS)
clean::
del gmoduleconf.h

View File

@ -1,221 +0,0 @@
/* testgmodule.c - test program for GMODULE
* Copyright (C) 1998 Tim Janik
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#undef G_LOG_DOMAIN
#include <gmodule.h>
#include "gmoduleconf.h"
G_MODULE_EXPORT void
g_clash_func (void)
{
g_print ("GModule: Hello global clash\n");
}
typedef void (*SimpleFunc) (void);
typedef void (*GModuleFunc) (GModule *);
static SimpleFunc plugin_clash_func = NULL;
int
main (int arg,
char *argv[])
{
GModule *module_self, *module_a, *module_b;
gchar *string;
gchar *basename;
gchar *plugin_a, *plugin_b;
SimpleFunc f_a, f_b, f_self;
GModuleFunc gmod_f;
string = g_get_current_dir ();
g_print ("testgmodule (%s):\n", string);
plugin_a = g_strconcat (string, G_DIR_SEPARATOR_S "libgplugin_a", NULL);
plugin_b = g_strconcat (string, G_DIR_SEPARATOR_S "libgplugin_b", NULL);
g_free (string);
/* module handles
*/
g_print ("get main module handle\n");
module_self = g_module_open (NULL, G_MODULE_BIND_LAZY);
if (!module_self)
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
g_print ("check that not yet bound symbols in shared libraries of main module are retrievable:\n");
string = "g_module_close";
basename = g_path_get_basename (g_module_name (module_self));
g_print ("retrieve symbol `%s' from \"%s\":\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_self, string, (gpointer) &f_self))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
g_print ("retrieved symbol `%s' as %p\n", string, f_self);
g_print ("load plugin from \"%s\"\n", plugin_a);
module_a = g_module_open (plugin_a, G_MODULE_BIND_LAZY);
if (!module_a)
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
g_print ("load plugin from \"%s\"\n", plugin_b);
module_b = g_module_open (plugin_b, G_MODULE_BIND_LAZY);
if (!module_b)
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
/* get plugin specific symbols and call them
*/
string = "gplugin_a_func";
basename = g_path_get_basename (g_module_name (module_a));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_a, string, (gpointer) &f_a))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
string = "gplugin_b_func";
basename = g_path_get_basename (g_module_name (module_b));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_b, string, (gpointer) &f_b))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
g_print ("call plugin function(%p) A: ", f_a);
f_a ();
g_print ("call plugin function(%p) B: ", f_b);
f_b ();
/* get and call globally clashing functions
*/
string = "g_clash_func";
basename = g_path_get_basename (g_module_name (module_self));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_self, string, (gpointer) &f_self))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
basename = g_path_get_basename (g_module_name (module_a));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_a, string, (gpointer) &f_a))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
basename = g_path_get_basename (g_module_name (module_b));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_b, string, (gpointer) &f_b))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
g_print ("call plugin function(%p) self: ", f_self);
f_self ();
g_print ("call plugin function(%p) A: ", f_a);
f_a ();
g_print ("call plugin function(%p) B: ", f_b);
f_b ();
/* get and call clashing plugin functions
*/
string = "gplugin_clash_func";
basename = g_path_get_basename (g_module_name (module_self));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_self, string, (gpointer) &f_self))
f_self = NULL;
g_print ("retrieved function `%s' from self: %p\n", string, f_self);
basename = g_path_get_basename (g_module_name (module_a));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_a, string, (gpointer) &f_a))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
basename = g_path_get_basename (g_module_name (module_b));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_b, string, (gpointer) &f_b))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
g_print ("call plugin function(%p) A: ", f_a);
plugin_clash_func = f_a;
plugin_clash_func ();
g_print ("call plugin function(%p) B: ", f_b);
plugin_clash_func = f_b;
plugin_clash_func ();
/* call gmodule function form A
*/
string = "gplugin_a_module_func";
basename = g_path_get_basename (g_module_name (module_a));
g_print ("retrieve symbol `%s' from \"%s\"\n", string, basename);
g_free (basename);
if (!g_module_symbol (module_a, string, (gpointer) &gmod_f))
{
g_print ("error: %s\n", g_module_error ());
return 1;
}
g_print ("call plugin A's module function(%p):\n{\n", gmod_f);
gmod_f (module_b);
g_print ("}\n");
/* unload plugins
*/
g_print ("unload plugin A:\n");
if (!g_module_close (module_a))
g_print ("error: %s\n", g_module_error ());
g_print ("unload plugin B:\n");
if (!g_module_close (module_b))
g_print ("error: %s\n", g_module_error ());
#if 0
g_log_set_fatal_mask ("GModule", G_LOG_FATAL_MASK|G_LOG_LEVEL_WARNING);
g_module_symbol (0, 0, 0);
g_warning("jahooo");
g_on_error_query (".libs/testgmodule");
#endif
return 0;
}

View File

@ -136,11 +136,11 @@ install-libLTLIBRARIES:
:
libmoduletestplugin_a_la_SOURCES = libmoduletestplugin_a.c
libmoduletestplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module $(no_undefined)
libmoduletestplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module $(no_undefined) -rpath $(libdir)
libmoduletestplugin_a_la_LIBADD = @G_MODULE_LIBS@ $(libadd_libgmodule) $(libadd_libglib)
libmoduletestplugin_b_la_SOURCES = libmoduletestplugin_b.c
libmoduletestplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module $(no_undefined)
libmoduletestplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module $(no_undefined) -rpath $(libdir)
libmoduletestplugin_b_la_LIBADD = @G_MODULE_LIBS@ $(libadd_libgmodule) $(libadd_libglib)
makefile.mingw: $(top_builddir)/config.status $(top_srcdir)/tests/makefile.mingw.in

View File

@ -16,6 +16,8 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include <string.h>
#include "glib.h"
#include "glib/gpattern.h"
@ -195,7 +197,6 @@ main (int argc, char** argv)
gint total = 0;
gint passed = 0;
gint failed = 0;
gchar *string, *pattern;
TEST_COMPILATION("*A?B*", G_MATCH_ALL, "*A?B*", 3);
TEST_COMPILATION("ABC*DEFGH", G_MATCH_ALL_TAIL, "HGFED*CBA", 8);