2005-07-15 Matthias Clasen <mclasen@redhat.com>
Make refcounting threadsafe by using atomic
operations. (#166020, Wim Taymans)
* gobject.c: Use a recursive lock to protect the
notify queue.
(g_object_unref): Get rid of g_object_last_unref and
do the last unref handling in g_object_unref.
(g_object_ref, g_object_unref): Use atomic operations.
* gsignal.c (struct _HandlerMatch): Use a full integer
for the ref_count field.
(handler_ref, handler_unref_R): Use atomic operations.
* gparam.c (g_param_spec_ref, g_param_spec_unref):
Use atomic operations instead of a lock to make the
refcounting threadsafe.
* gclosure.c (g_closure_ref, g_closure_unref): Use atomic
operations. This is more complicated here, since the
refcount is stored in a bitfield, so we also have
to access all other bitfield members atomically.
* gsignal.c (handlers_find): Read the meta_marshal flag
of the closure atomically.
* tests/Makefile.am (SUBDIRS): Add tests/refcount
* configure.in: Add tests/refcount
* tests/refcount/properties.c: Test property changes
from multiple threads.
* tests/refcount/signals.c: Test signal emission from
multiple threads.
* tests/refcount/objects.c: Test refcounting from
multiple threads.
* tests/refcount/objects2.c:
* tests/refcount/properties2.c: Tests to measure the
overhead of threadsafe refcounting.
* glib/giochannel.c (g_io_channel_ref, g_io_channel_unref):
Use atomic operations to make refcounting
threadsafe. (#166020, Wim Taymans)
2005-07-09 Tor Lillqvist <tml@novell.com>
* configure.in: Don't use autoconf variables for the resource
object files on Win32 any longer. Instead handle that in the
Makefile.am files. Check for windres.
* glibconfig.h.win32.in: Minor tuning to match the
configure-produced glibconfig.h closely.
* */Makefile.am: Don't use the scripts in build/win32 to
compile the .rc file into a resource object file. (This means
we loose the build number increment magic, but I doubt it was
that useful anyway.) Instead use windres directly. To pass the
normal .o file produced by windres through libtool, which
wants .lo files, pass it directly to the linker using a -Wl
option.
* */*.rc.in: Thus replace BUILDNUMBER with 0.
2005-06-30 Matthias Clasen <mclasen@redhat.com>
Apply a patch which may make GLib work on BeOS again.
(#309157, Kian Duffy)
* glib/gmain.c: Update the BeOS includes.
* glib/gstdio.c:
* glib/gutils.c (g_find_program_in_path):
* glib/gbacktrace.c (g_on_error_stack_trace): Use the UNIX
implementation on BeOS, as well.
* configure.in: Don't put glib 1.0 into G_MODULE_LIBS, even
on BeOS.
2005-06-24 Matthias Clasen <mclasen@redhat.com>
Add an mmap() wrapper called GMappedFile. (#148218,
David Schleef, Behdad Esfahbod)
* glib/gmappedfile.[hc]: New files.
* configure.in: Check for mmap.
* glib/Makefile.am: Add new files.
* glib/glib.symbols: Add new functions.
* glib/glib.h: Include gmappedfile.h
* tests/mapping-test.c: Tests for GMappedFile.
* tests/Makefile.am: Add new file.
2005-05-06 Brian Cameron <brian.cameron@sun.com>
* configure.in, gmodule-no-export-2.0-uninstalled.pc.in,
Makefile.am: Added gmodule-no-export-2.0-uninstalled.pc.in
to allow building of other libraries like pango when
glib is uninstalled.
2005-03-27 Tor Lillqvist <tml@novell.com>
* configure.in: Apparently AC_LIBTOOL_WIN32_DLL isn't deprecated
after all, and in fact necessary with HEAD libtool.
2005-02-23 Matthias Clasen <mclasen@redhat.com>
* configure.in: Don't forget to set G_THREAD_LIBS_FOR_GTHREAD
on non-linux platforms. (#168177, Michael Banck)
2005-02-05 Tor Lillqvist <tml@novell.com>
* configure.in (G_LIBS_EXTRA)
* glib/giowin32.c: I think we can include <winsock2.h> and link
with -lws2_32. Only Windows 95 originally didn't have Winsock 2,
and it's available as an update for it. Not that we use any actual
Winsock 2 -only features, but still, simpler to link directly with
ws2_32.dll instead of going through wsock32.dll.
2005-02-04 Matthias Clasen <mclasen@redhat.com>
* configure.in: Define a HAVE_GNUC_VISIBILITY automake
conditional.
* glib/Makefile.am (TESTS): Only check the abi if
the compiler supports visibility, otherwise we
know there will be (harmless) extra symbols.
(#166181, Ed Avis)
2005-01-28 Christian Rose <menthos@menthos.com>
* configure.in: Added "tl" to ALL_LINGUAS.
* po/tl.po: Added Tagalog translation by
Eric Pareja <xenos@upm.edu.ph>.
2005-01-11 Owen Taylor <otaylor@redhat.com>
* configure.in: Add gmodule-export-2.0.pc to AC_CONFIG_FILES.
* glib/Makefile.am gobject/Makefile.am gthread/Makefile.am:
Use grep | head -n 1 instead of grep -m 1 which doesn't work
with slightly older versions of GNU grep in
install-libtool-import-lib rule.
2005-01-04 Matthias Clasen <mclasen@redhat.com>
Fix the inlining magic. (#157536, Jens Hatlak, and
#149907, Morten Welinder)
* configure.in: Define G_CAN_INLINE in glibconfig.h
* glib/gutils.h: Streamline the inlining magic a bit,
don't use extern when implementing the non-inlined
version.
2005-01-01 J. Ali Harlow <ali@juiblex.co.uk>
* configure.in: Don't use AC_TRY_RUN to test for long long format
when using the MSVCRT.DLL runtime since we know the answer anyway
and it causes some mild inconvience when cross compiling.
* README.win32: Add a reference to the cross compiling section
of the reference manual.
* docs/reference/glib/cross.sgml: MinGW uses MSVCRT.DLL which
requires %I64i instead of %lli. (#161306)
2004-12-27 Matthias Clasen <mclasen@redhat.com>
* configure.in: Add an OS_LINUX conditional.
* glib/Makefile.am (TESTS): Only check the ABI on
linux, since the shell script is not portable, and libtool
deficiencies may distort the ABI on other platforms. (#161741)
2004-11-16 Matthias Clasen <mclasen@redhat.com>
* Makefile.am (EXTRA_DIST):
* configure.in (AC_CONFIG_FILES): Add gmodule-no-export-2.0.pc.in
* gmodule-no-export-2.0.pc.in: Add a variants of gmodule-2.0.pc.in
which doesn't add -Wl,--export-dynamic, since Pango or GTK+ don't
need it. (#125627, Owen Taylor)
2004-08-25 Tor Lillqvist <tml@iki.fi>
Win32 equivalences of the XDG folders
* glib/gutils.c (get_special_folder): New function, calls
SHGetSpecialFolderLocation() to get path to places like the My
Documents folder.
(g_get_any_init): Use CSIDL_PROFILE as HOME if not
overridden by env vars.
(g_get_user_data_dir): Use CSIDL_PERSONAL.
(g_get_user_config_dir): Use CSIDL_APPDATA.
(g_get_user_cache_dir): Use CSIDL_INTERNET_CACHE. Debatable...
(g_get_system_data_dirs): Use CSIDL_COMMON_APPDATA and
CSIDL_COMMON_DOCUMENTS.
(g_get_system_config_dirs): Use CSIDL_COMMON_APPDATA.
* configure.in: Add -lole32 to G_LIBS_EXTRA for mingw.
* glib/glib.def: Add the new functions.
2004-08-17 Matthias Clasen <mclasen@redhat.com>
* configure.in: Check for all four values of the
visibility attribute; gcc 2.96 seems to miss
"default". (#150379, Vincent Noel)
2004-08-16 Christian Rose <menthos@menthos.com>
* configure.in: Added "bs" to ALL_LINGUAS.
* po/bs.po: Added Bosnian translation by
Kenan Hadžiavdić <kenanh@frisurf.no>.
2004-08-10 Matthias Clasen <mclasen@redhat.com>
* glib/gmacros.h: Remove G_GNUC_INTERNAL from here.
* configure.in: Check whether the visibility attribute
works and define G_HAVE_GNUC_VISIBILITY and
G_GNUC_INTERNAL in glibconfig.h correspondingly.
Sun Jul 4 01:52:18 2004 Matthias Clasen <maclas@gmx.de>
* configure.in: Use a small test library instead of
libpthread.so for testing RTLD_GLOBAL brokenness. (#139567,
Julio M. Merino Vidal)
Sun Jun 6 15:23:00 2004 Pawan Chitrakar <pawan@nplinux.org>
* ne.po: Added "ne.po" Nepali translation
* configure.in: Added "ne"(Nepali) in ALL_LINGUAS
2004-04-30 Matthias Clasen <mclasen@redhat.com>
* === Released 2.4.1 ===
* glib/libcharset/Makefile.am (INCLUDES): Add -I$(top_srcdir)
to make make distcheck happy.
* configure.in: Version 2.4.1, interface age 1.
* NEWS: Updates
2004-04-03 Tor Lillqvist <tml@iki.fi>
* configure.in: Remove AC_CYGWIN, obsolete. Don't let pthreads be
found on Cygwin, they don't work. (#138401, Roger Leigh)
2004-03-16 Tor Lillqvist <tml@iki.fi>
* configure.in: Define HAVE_INT64_AND_I64 also in the mingw (gcc
on Win32) case, where the 64-bit type is called long long, but the
system printf/scanf format modifier for 64-bit integers is still I64.
2004-03-06 Tor Lillqvist <tml@iki.fi>
* README.win32: Update.
* configure.in
* Makefile.am
* */Makefile.am: Drop the hand-written makefile.mingw(.in)
files. They haven't been maintained in a long time. As several
people have managed to build GLib for Win32 using the
autoconfiscation mechanism, there is no real reason to even try to
maintain the hand-written mingw makefiles.
Mon Mar 1 16:49:51 2004 Owen Taylor <otaylor@redhat.com>
* === Released 2.3.5 ===
* configure.in: Version 2.3.5, interface ago 0.
* NEWS: Some further updates.
Mon Mar 1 15:39:57 2004 Owen Taylor <otaylor@redhat.com>
Patch from J. Ali Harlow
* configure.in: Use void * not HANDLE for GPid on win32.
* glib/gspawn.[ch] glib/gspawn-win32.[ch] glib/glib.def:
Add g_spawn_close_pid().
* glib/gspawn.[ch]: Make g_spawn functions take
GPid * instead if int * (GPid == int on unix, will
produce compile warnings until fixed on Win32.)
* tests/child-test.c: Make the test a little more
inappropriately verbose.
* glib/gmain.c: Add some documentation warnings about
not closing @pid while the source is active.
2004-02-29 Sebastian Wilhelmi <seppi@seppi.de>
* configure.in, glib/gatomic.c, glib/gatomic.h: Moved the
assembler functions from gatomic.h to gatomic.c, which makes for
better maintainability. Also use gint instead of gint32 to be able
to use reference counting for ABI-fixed structures with
gint/guint.
* glib/gthread.h: Adapted accordingly.
* tests/atomic-test.c: Updated to test for G_MAXINT and G_MININT.
* glib/glib-overrides.txt, glib/glib-sections.txt,
glib/tmpl/atomic_operations.sgml: Updated according to code changes.
2004-02-26 Sebastian Wilhelmi <seppi@seppi.de>
* glib/gatomic.h: empty G_ATOMIC_MEMORY_BARRIER() definition for
!G_THREADS_ENABLED
* glib/gthread.h: Define g_once and
g_static_mutex_get_mutex_impl_shortcut in terms of
G_MEMORY_BARRIER, if defined and if we can inline.
* configure.in: Remove double checked locking feature check.
2004-02-26 Sebastian Wilhelmi <seppi@seppi.de>
* configure.in, config.h.win32.in, glib/gthread.c: Removed the PID
niceness surrogate for thread priorities as requested by Tim. It
does more harm than good.
* glib/tmpl/threads.sgml: Updated to reflect removal of the PID
niceness surrogate for thread priorities.
2004-02-26 Sebastian Wilhelmi <seppi@seppi.de>
* glib/gatomic.c, glib/gatomic.h: New files to implement atomic
operations for different platforms. Fixes bug #63621.
* glib/glib.h: Include gatomic.h.
* configure.in: Add test for assembler routines for atomic operations.
* glib/Makefile.am: Add gatomic.c, gatomic.h.
* tests/Makefile.am, tests/atomic-test.c: Unit test for atomic
operations.
* glib/glib-overrides.txt, glib/glib-sections.txt,
glib/glib-docs.sgml, glib/tmpl/atomic_operations.sgml: Add docs
for atomic operations.
2004-02-25 Sebastian Wilhelmi <seppi@seppi.de>
* configure.in, glib/gthread.c: For the PID thread priorities
surrogate use gettid instead of getpid. This also works with nptl
(on linux-2.6), as well as with linuxthreads (on linux-2.4).
Sun Feb 22 02:28:43 2004 Matthias Clasen <maclas@gmx.de>
* configure.in: Set the gmodule suffix to 'a' for aix and
use the aix gmodule implementation. (#85930, Laurent Vivier)
Bug #85930, Laurent Vivier:
* gmodule-ar.c: Implementation of native module management for AIX.
* gmoduleconf.h.in:
* gmodule.c: Support gmodule-ar.c
Sat Feb 14 02:11:08 2004 Matthias Clasen <maclas@gmx.de>
* configure.in: Make the check for GNU make work when MAKE is a
full path. (#134102, Julio M. Merino Vidal)
Sat Feb 14 02:08:03 2004 Matthias Clasen <maclas@gmx.de>
* configure.in: Suppress xsltproc and xmlcatalog checks
if enable_man=no. (#134091, Julio M. Merino Vidal)
Sat Feb 14 01:21:34 2004 Matthias Clasen <maclas@gmx.de>
* glib/gmain.h:
* glib/gmain.c (g_child_watch_source_new):
* glib/gmain.c (g_child_watch_add):
* glib/gmain.c (g_child_watch_add_full): Wrap waitpid() as a
GSource. This is a partial implementation of the "Unix signal
source". (#50296, Jonathan R. Blandford)
* configure.in: Add the necessary configury to typedef GPid
appropriately.
* tests/Makefile.am:
* tests/child-test.c: Test child_watch sources.
Sun Jan 11 16:13:20 2004 Manish Singh <yosh@gimp.org>
* configure.in: Add G_MAXSIZE, define in terms of G_MAXUfoo.
* tests/type-test.c: Add test for G_MAXSIZE.
* glibconfig.h.win32.in: Cleanup, add some missing bits.
Tue Dec 2 02:29:41 2003 Matthias Clasen <maclas@gmx.de>
Fix for #103710, Mark Jones:
* glib/gtypes.h (G_MAXINT64): Define G_{MIN,MAX,MAXU}INT{8,16,32,64}.
* configure.in: Don't put G_{MIN,MAX,MAXU}INT64 in glibconfig.h.
Sat Nov 15 00:46:14 2003 Matthias Clasen <maclas@gmx.de>
* configure.in: Don't blindly set glib_cv_long_long_format to
"ll" when using the included printf. As long as the native
printf supports 64bit printing, use the native format.
(#119525, Tor Lillquist)
Sun Nov 2 01:47:31 2003 Matthias Clasen <maclas@gmx.de>
Fix 64bit printing for MSVC builds (#119292, Hans Breuer):
* configure.in (HAVE_INT64_AND_I64): Define for MSVC to
include support for printing __int64 with format %I64 in
the gnulib printf wrappers.
* glib/gnulib/printf-args.h (enum arg_type): Add TYPE_INT64
and TYPE_UINT64.
* glib/gnulib/printf-args.h (struct argument): Add a_int64 and
a_uint64 members.
* glib/gnulib/printf-args.c (printf_fetchargs): Support
TYPE_INT64 and TYPE_UINT64.
* glib/gnulib/printf-parse.c (printf_parse): Parse I64 format
modifier and map formats to TYPE_INT64.
* glib/gnulib/vasnprintf.c (vasnprintf): Print TYPE_INT64 with
format modifier I64.
* glib/gnulib/README: Document the __int64 support.
Fri Oct 31 00:13:53 2003 Matthias Clasen <maclas@gmx.de>
* configure.in: Remove the semicolon from the definition of
g_once(), so that GPOINTER_TO_INT (g_once (...)) works.
2003-10-24 Tor Lillqvist <tml@iki.fi>
* configure.in: Force shared library (DLL) only on Windows.
(I don't think that is controversial?) Remove unnecessary
AC_LIBTOOL_WIN32_DLL. Don't use -D_REENTRANT on
Win32, it is not used by mingw or MSVC headers.
* config.h.win32.in
* glibconfig.h.win32.in: Match what configure produces.
* glib/gconvert.c
* glib/gutils.c: Mark a couple of functions and variables that
aren't public as static.
* glib/gnulib/g-gnulib.h: Undef HAVE_SNPRINTF before (re)defining
it potentially differently, to silence compiler.
* glib/glib.def: Add some missing entries.
* tests/gobject/Makefile.am (LDADD): Reorder, put libgobject after
libtestgobject.
* tests/gobject/ifaceproperties.c (main): NULL-terminate arg list
to g_object_set() and _get().
2003-10-05 Matthias Clasen <maclas@gmx.de>
* configure.in: Make the various printf feature test macros
reflect the system printf, even when using the included printf.
In particular, don't force HAVE_C99_SNPRINTF, since g-gnulib.h
needs that test result. (#122973)
* glib/gprintf.c (g_vasprintf): Don't rely on HAVE_VASPRINTF,
directly check for _g_vasprintf.
* glib/gprintfint.h (_g_vasprintf): Only define _g_vasprintf()
if vasprintf() is available.
* glib/gnulib/printf.c (_g_gnulib_vfprintf): Don't write
trailing nul to the file. (#122973)
* acinclude.m4 (AC_FUNC_VSNPRINTF_C99): Make the test
detect non-C99-compliance of AIX 5.1 and Solaris
vsnprintf(). (#122496)
2003-07-10 Joel Brich <joel.brich@laposte.net>
* configure.in: Added "eo" to ALL_LINGUAS.
* po/eo.po: Added Esperanto translation
from Charles Voegler <cvoegler@dweasel.com>
2003-07-09 Matthias Clasen <maclas@gmx.de>
Support for one-time initialization functions. (#69668, Sebastian Wilhelmi)
* configure.in: Check whether double checked locking is safe, define g_once() in
glibconfig.h accordingly.
* glib/gthread.h: Add GOnce, GOnceStatus, G_ONCE_INIT and g_once_impl.
* glib/gthread.c (g_once_impl): Fallback implementation using a mutex if double checked
locking is unsafe.
* tests/thread-test.c: Add tests for g_once().
2003-06-17 Matthias Clasen <maclas@gmx.de>
* acinclude.m4 (JH_PATH_XML_CATALOG, JH_CHECK_XML_CATALOG): New
macros to check for XML catalog contents and path, borrowed from
gtk-doc.
* configure.in: New option --enable-man to enable regeneration of
man pages from Docbook, if the necessary tools are found.
* gobject/Makefile.am: Add rule to regenerate man pages from
Docbook.
(man_MANS): Add glib-mkenums.1, glib-genmarshal.1 and gobject-query.1.
(content_files): Add glib-mkenums.xml, glib-genmarshal.xml and
gobject-query.xml.
* gobject/glib-mkenums.xml:
* gobject/glib-genmarshal.xml:
* gobject/gobject-query.xml: New refentries.
* gobject/glib-mkenums.1:
* gobject/glib-genmarshal.1:
* gobject/gobject-query.1: Man pages generated from the .xml
sources.
* gobject/gobject-docs.sgml: Include glib-mkenums.xml,
glib-genmarshal.xml and gobject-query.xml.
* glib/Makefile.am: Add rule to regenerate man pages from
Docbook.
(man_MANS): Add glib-gettextize.1.
(content_files): Add glib-gettextize.xml.
* glib/glib-gettextize.xml: New refentry.
* glib/glib-gettextize.1: Man page generated from the .xml source.
* glib/glib-docs.sgml: Include glib-gettextize.xml.