Mon Jan 15 21:12:49 2001 Owen Taylor <otaylor@redhat.com>
* configure.in acconfig.h glibintl.h gutils.c
po/{Makefile.in.in,POTFILES.in,po2tbl.in}: Add gettext
support.
* glib-gettext.m4 acinclude.m4: Clean up the GTK+ gettext macros
some more and put them in this file, though they also need
to be included in acinclude.m4 due to the brokeness of
aclocal.
* gspawn.c gspawn-win32.c gutf8.c gconvert.c gfileutils.c
gshell.c: Remove dummy _() #defines, include glibintl.m4.
Fri Jan 5 11:25:42 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (PACKAGE): move $enable_debug down below
checks for GCC to avoid setting CFLAGS prematurely,
change checks to avoid adding -g twice.
* gutf8.c (g_ucs4_to_utf8): Support len < 0 to mean
0 termination.
* gutf8.c (g_utf8_to_ucs4): Terminate result with 0.
* tests/mainloop-test.c (main): Fix uses of
g_main_loop_destroy().
* tests/unicode-encoding.c tests/Makefile.am tests/utf8.txt:
Tests for unicode-conversion code.
* gconvert.c (g_convert, g_convert_with_fallback): work around
a couple of GNU libc bugs.
* gconvert.[ch] (g_{locale,filename}_{to,from}_utf8): Standardize
arguments to match g_convert(). Document.
* gunicode.[ch]:
- Implement conversion functions to and from UTF-16
- Standardize unicode conversion functions on prototype like
g_convert.
- Add a lot of error checking to unicode conversion functions.
* gunicode.[ch] (g_utf8_to_ucs4_fast): Add fast, non-checking
variant of g_utf8_to_ucs4.
* gutf8.c (g_utf8_validate):
- add g_return_if_fail (str != NULL).
- add checks for overlong strings, non-valid Unicode characters (>= 110000)
and single surrogates.
2001-01-05 Tor Lillqvist <tml@iki.fi>
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
forward slashes in the template.
* gutils.c (g_path_skip_root): On Win32, skip the \\server\share
part of UNC paths. On all platforms, skip several initial
slashes. Add a few comments.
(g_get_any_init): On Win32, in case HOME is Unix-style with
(forward) slashes (some other applications apparently set it up
this way, convert to backslashed form.
* configure.in (glib_os): Remove stray 'v'. Add case for mingw,
although using configure for mingw surely doesn't work yet.
* glib.def: Update.
Fri Dec 29 14:53:18 2000 Tim Janik <timj@gtk.org>
* configure.in: we can't grow _cv_ variables by using a backticked
expr that refers back to the variable (glib_cv_sizeof_system_thread for
G_THREAD_USE_PID_SURROGATE), that'd keep the variable growing every time
it's evaluated. quantum states, anyone?)
Thu Dec 28 10:21:46 2000 Tim Janik <timj@gtk.org>
* gmem.[hc]: got rid of outdated dmalloc support. provide g_try_malloc()
and g_try_realloc() which _may_ fail and return NULL.
nuked g_mem_check(), provided GMemVTable for memory function
virtualization, alterable at program startup with g_mem_set_vtable().
provided glib_mem_profiler_table and g_mem_profile() to support limited
profiling information out of the box (uses mprotect() for free()ed areas
on linux).
provide globally visible G_MEM_ALIGN.
buncha cleanups.
* docs/macros.txt: file to get a clue about the various configuration
macros.
* docs/debugging.txt: explain debugging traps.
* configure.in: got rid of --enable-mem-check and --enable-mem-profile,
define GLIB_SIZEOF_VOID_P and GLIB_SIZEOF_LONG. check malloc prototypes
and define SANE_MALLOC_PROTOS is we can use them.
<boy, is this file a mess>
* gutils.c, gscanner.c: fix up compatibility warnings, use g_message().
Thu Dec 28 11:36:44 2000 Tim Janik <timj@gtk.org>
* gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
fucntionality if DISABLE_MEM_POOLS is defined.
* gtype.c: honour DISABLE_MEM_POOLS.
* gsignal.c (g_signal_init): flag signal key bsearch array with
G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
DISABLE_MEM_POOLS.
* gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
G_PARAM_WRITABLE).
2000-12-22 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Determine the suffix of the shared librarries for
this system. This is done analogous to
ltconfig.sh. G_MODULE_SUFFIX in glibconfig.h is set to either
"sl", "dll", or (most often) "so".
* tests/Makefile.am, tests/module-test.c,
tests/libmoduletestplugin_a.c, tests/libmoduletestplugin_b.c:
Added new testcase for gmodule. This is mostly copied from
gmodule/testgmodule.c, but unlike that is is quiet. (Why BTW are
some tests that verbose, not to say loquacious...)
* gmodule.c: Make g_module_open more tolerant wrt to the module
name. First it tries to open the module as named, if that fails,
it checks, whether it is a libtool archive and parses it, if that
fails it appends the systems shared library suffix
(i.e. ".so") (if not already found) and tries again and if that
fails it tries to append the ".la" libtool suffix (if not already
found) and parses it.
* gmodule.c: Lock recursive mutex during most module functions for
safety.
* gmodule-dl.c: Return an error from _g_module_symbol only, if
dlerror says so. All other functions return an error as well, if
dlerror returns NULL.
* testgmodule.c: Thanks to the above change the #ifdefs have
vanished.
* glib/glib-sections.txt: Added G_MODULE_SUFFIX.
* glib/tmpl/modules.sgml: Updated.
Mon Dec 11 04:44:11 2000 Tim Janik <timj@gtk.org>
* gboxed.c: fixed dealing with collection/lcopy of NULL values.
* gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
convenience macro.
* Makefile.am: cleanups, marshaller generation rules.
* gmarshal.[hc]: new files with GRuntime standard marshallers.
* glib-genmarshal.c: fix log domain, support gruntime standard
marshallers, suport G_TYPE_PARAM, come with extern "C" and
#include gmarshal.h.
* glib-genmarshal.1: reflect glib-genmarshal.c updates.
* gobject.[hc]: implement object constructor. rework parameter
changed notification queueing, we support queue freezes now and
don't dispatch from an idle handler anymore.
parameter->property rename hassle.
implemented ::properties_changed and ::notify::* signals for
property change notification (the later supports property names
as details). added signal connection and named data properties.
(g_signal_connect_object): new function to setup while_alive
connections.
(g_object_class_install_property): sink properties now, since they
are initially floating.
(g_object_steal_data):
(g_object_set_data_full):
(g_object_set_data):
(g_object_get_data): set/get data by using g_datalist_*() functions
directly.
(g_object_queue_param_changed): nuked.
(g_object_freeze_notify): start queueing of property changes (freeze/
thaw calls stack).
(g_object_notify): announce changes of a certain property directly.
(g_object_thaw_notify): process queue of property changes, therefore
emitting GObject::notify::detail with detail being the changed
properties names.
(G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
G_WARN_INVALID_PARAM_ID().
* gparam.[hc]: param specs are now initially floating and need to be
sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
required by GObjectClass.constructor().
* gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
and G_TYPE_CCALLBACK respectively.
* gsignal.[hc]: cleanups.
(signal_id_lookup): after walking the anchestry, try interfaces as well.
(g_signal_new): new function to create signals from varargs type list.
(g_signal_connect_closure): closure connection variant that works from
signal name+detail.
(g_signal_connect_data): c handler connection variant that works from
signal name+detail.
(g_signal_emit_valist): emit signal for an instance with paraneters
collected from a va_list.
(g_signal_emit): emit signal, taking parameters from varargs list.
(g_signal_emit_by_name): same as g_signal_emit, working from
signal name+detail.
(signal_emit_R): return whether return_value needs to be altered.
* gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
the points that need to reflect the upcoming rename.
melt g_type_conforms_to() functionality into g_type_is_a(), as that
is what we really want (liskov substitution principle).
assorted changes to other files due to conforms_to->is_a.
* gvalue.[hc]: implemented g_value_set_instance() that sets a value
from an instantiatable type via the value_table's collect_value()
function (based on an idea from James Henstridge <james@daa.com.au>).
cleanups/fixes.
* gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
2000-11-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Add a surrogate for thread priorities using PID
niceness for systems with no thread priorities and different PIDs
for threads of the same process (most notably: Linux). Define
G_THREAD_USE_PID_SURROGATE in that case, as used by
gthread-posix.c. Also make the system thread bigger by
sizeof (long) to contain the thread's PID.
* gfileutils.c: Include stdlib.h for mkstemp prototype.
* gthread.c: Add priority range checks to the affected functions.
* gthreadpool.c: Remove unused variable.
* gthread-impl.c, gthread-posix.c, gthread-solaris.c: Removed
g_thread_map_priority function in favour of the
g_thread_priority_map array. Initialize the array with
PRIORITY_{...}_VALUE, if available and interpolate beetween the
bounds if .._NORMAL_.. and .._HIGH_.. are not available.
* gthread-posix.c: If we should use the PID niceness as a
surrogate for thread priorities (G_THREAD_USE_PID_SURROGATE is
defined), then disable normal priority handling and use PIDs and
setpriority() instead. Depends on the thread to write its PID into
the place after the thread id right after thread creation.
2000-11-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Check for the sched.h header and include it on
gthread/gthread-posix.c if available.
* gthread-posix.c: Include <sched.h> if available.
* configure.in: Add -D_POSIX4_DRAFT_SOURCE to
GTHREAD_COMPILE_IMPL_DEFINES. Also add -D_POSIX4A_DRAFT10_SOURCE
to G_THREAD_CFLAGS. Really deploy GTHREAD_COMPILE_IMPL_DEFINES,
when searching for thread libs. Look for sched_* functions in
-lrte as well. All of that is necessary on DG/UX.
* configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADERS in
various places to make it work more reliable, to make it accept
macros instead of functions etc.
* configure.in: Replace some NULL's for checks with 0 to make it
work without stdio.h everywhere.
* configure.in, gutils.c: changed the test for getpwuid_r to first
test for a posix version and then for a non-posix version. No code
change in gutils.c. Again this change deals better with getpwuid_r
being a macro and not a function. Most of the above with kind help
from Tethys <tet@isengard.europe.dg.com>. This fixes Bug #13403.
Sun Nov 12 18:34:32 2000 Owen Taylor <otaylor@redhat.com>
* gconvert.[ch]: Create wrapper functions for iconv()
so that we can transparently use the native iconv,
libiconv, or (in the future) a mini-iconv included
with glib.
* glib-config-2.0.in glib-2.0.pc.in: Include @ICONV_LIBS@
* INSTALL: Added note about libiconv.
* configure.in: Add checks for libiconv from pango. If
EILSEQ is not defined in errno.h add define for it into
glibconfig.h so g_iconv can use it. (Note, recompiling
from a system without EILSEQ to a system with EILSEQ
will break binary compatibility)
2000-10-30 Tor Lillqvist <tml@iki.fi>
* configure.in: Check for mkstemp.
* gutils.c (g_mkstemp): New function. If HAVE_MKSTEMP, just call
it, otherwise use code lifted from glibc.
* gutils.h: Declare it.
* glib.def: Here, too.
gmodule:
* Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
gobject:
* Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
(*): Remove traces of @STRIP_{BEGIN,END}@.
gthread:
* Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
docs/reference:
'make distcheck' fixes.
* glib/Makefile.am (EXTRA_DIST): Add $(DOC_MODULE)-decl.txt.
(html): Run 'gtkdoc-fixxref' in $(srcdir).
(dist-check-gtkdoc): Add missing quote.
(dist-hook): Copy in dependency order, so that none of the
makerules are fired in a tarball build.
* gobject/Makefile.am: Likewise.
toplevel:
Remove need for acconfig.h, and misc. cleanups.
* acglib.m4 (GLIB_SIZEOF): Add 'autoheader' comment to
AC_DEFINE_UNQUOTED.
(GLIB_BYTE_CONTENTS): Likewise.
* configure.in: Add 'autoheader' comments to all AC_DEFINE(...)
and AC_DEFINE_UNQUOTED(...) lines.
Replace AC_MSG_CHECKING/AC_CACHE_VAL with AC_CACHE_CHECK.
(AM_PROG_LIBTOOL): Move after AC_PROG_CC.
* acconfig.h: Empty out.
* Makefile.am (BUILT_EXTRA_DIST): New variable. List 'dist'able
files that are created in the builddir.
(dist-hook): Handle those files.
(libglib_1_3_la_SOURCES): Remove @ALLOCA@. @ALLOCA@ should only
be used in an _LDADD or _LIBADD, since it expands (if necessary)
to 'alloca.o'.
* tests/Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: define GLIB_HAVE_ALLOCA_H instead of including
alloca.h in glibconfig.h, GLIB_HAVE_ALLOCA_H is used in glib.h.
* configure.in (GLIB_MAJOR_VERSION): Use GLIB_DIVERT_BEFORE_HELP
instead of AC_DIVERT_PUSH(),AC_DIVERT_POP.
(AC_CHECK_HEADERS): Remove redundant AC_DEFINE(HAVE_...).
(REALLOC_0_WORKS): Move AC_DEFINE outside AC_CACHE_VAL.
(dlopen): Quote nested AC_CHECK_... calls.
* acglib.m4 (GLIB_TR_SH, GLIB_TR_CPP): Utility macros copied from
beta autoconf 2.50.
(GLIB_DIVERT_BEFORE_HELP): New macro that works both with autoconf
2.13 and beta autoconf 2.50.
(GLIB_SIZEOF, GLIB_BYTECONTENTS): Use GLIB_TR_*.
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
* Makefile.am (SUBDIRS): Only compile the gthread subdirectory if we
actually have threads.
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
* Makefile.am (SUBDIRS): Only compile the gthread subdirectory if we
actually have threads.
2000-09-29 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, glib.h: Added errorcheck mutexes. These are
activated through the preprocessor symbol
G_ERRORCHECK_MUTEXES. Need to add an extra word to StaticMutex in
order to achieve this. g_(static_)mutex_* functions instrument the
mutex operations with mutex name and location, when compiled with
-DG_ERRORCHECK_MUTEXES. g_thread_init activates the errorcheck
mutexes, when compiled with -DG_ERRORCHECK_MUTEXES.
* gthread/gthread-impl.c: Added errorcheck mutexes. New
exported function
g_thread_init_with_errorcheck_mutexes, which is called instead of
g_thread_init, when compiled with -DG_ERRORCHECK_MUTEXES. New
static functions
g_mutex_(new|lock|trylock|unlock|free)_errorcheck_impl to
implement errorcheck mutexes.
* gthread/gthread-posix.impl.c, gthread/gthread-solaris-impl.c:
Define the size of a mutex.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Adjusted the test for an unimplemented
getpwuid_r. Info from Michael Pruett. This is just a forward
merge from glib-1-2.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Moved determination of G_THREAD_FLAGS before
G_THREAD_LIBS. Check for UnixWare systems and set the right cflags
and libs there (it needs -Kthread for the native compiler and
-pthread for gcc). Thanks to Boyd Lynn Gerber <gerberb@zenez.com>
for the info.
* configure.in: Fail immediately, when no thread library is found,
instead of continuing searching for rt libs etc. Changed almost
all occurances of $enable_threads to $have_threads, as that's,
what we want.
* tests/threadpool-test.c: Define vars inside the guard to avoid
warnings.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, tests/type-test.c: Some platforms support 64 bit
'long long', but you can not printf or scanf them. In that case,
don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
to reflect that.
2000-09-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: The last released automake (1.4) still requires
AM_PROG_LIBTOOL instead of AC_PROG_LIBTOOL, so use that for the
time being.
2000-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* acconfig.h, configure.in, gutils.c: Test for the existence of
getcwd, and use it only when found.
* glib.h: Only use the gcc-variable-macro-argument-extension for
gcc >= 2.4. Both patches from Jonas Oberg <jonas@gnu.org>.
Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
* glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere.
* gconvert.c: Fix warnings which could have caused problems on 64-bit platforms.
Wed Sep 6 10:59:45 2000 Owen Taylor <otaylor@redhat.com>
* gobject/Makefile.am glib/Makefile.am: Improve
separation of generic non-generic parts and dependencies.
Wed Jul 26 05:47:48 2000 Tim Janik <timj@gtk.org>
* configure.in:
* testglib.c:
* gstrfuncs.c:
* glib.h: added g_strlcat() and g_strlcpy() wrappers, supplied by
David Wheeler <dwheeler@ida.org>:
* glib.h, gstrfuncs.c: added g_strlcpy and g_strlcat to support
safe manipulation of fixed-length string buffers.
These functions were originally developed by Todd Miller to simplify
development of security-related programs, and
are available on many (but not all) Unix-like systems,
including OpenBSD, FreeBSD, and Solaris. See
ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3
and http://www.openbsd.org/security.html.
If there's a strlcpy/strlcat on the system, it's called, otherwise
an implementation is provided.
* testglib.c: Added tests for g_strlcpy, g_strlcat.
Wed Jul 26 05:03:24 2000 Tim Janik <timj@gtk.org>
* acglib.m4 (GLIB_SIZEOF): include <stdlib.h> and <stddef.h> if
STDC_HEADERS is defined.
* glib.h:
* glibconfig.h: define gsize and gssize in terms of GLIB_SIZEOF_SIZE_T
* glib.h (g_return_if_reached): applied darin's fix for copy'n
paste error in the macro implementation.
2000-07-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, glib.h: glibconfig.h and glib.h now include files
outside of the extern "C" block. Makes some C++ compiler
happy. Reported by Denis Vakatov <vakatov@peony.nlm.nih.gov>.
* gmodule/gmodule.h: include glib.h before doing extern "C".
Makes some C++ compiler happy. Reported by Denis Vakatov
<vakatov@peony.nlm.nih.gov>.
Sat Jul 15 22:44:22 2000 Owen Taylor <otaylor@redhat.com>
* configure.in: Add build/Makefile and
build/win32/Makefile to AC_OUTPUT() so things build
again.
Fri Jul 14 12:22:49 2000 Owen Taylor <otaylor@redhat.com>
* configure.in Makefile.am glib-config.m4 glib.m4: Move
glib-config to glib-config-2.0 move glib.m4 to
glib-2.0.m4
* Makefile.am gobject/Makefile.am gmodule/Makefile.am
gthread/Makefile.am tests/Makefile.am: Change
library names to libglib-1.3.la, etc, so that we
can distinguish glib-1.2 and glib-2.0 on the linkline.
* Makefile.am gobject/Makefile.am gmodule/Makefile.am:
Move include files into /usr/include/glib-2.0.
Thu Jul 6 18:54:49 2000 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am (EXTRA_DIST): Remove info files
from the build.
Thu Jul 6 15:35:28 2000 Owen Taylor <otaylor@redhat.com>
* Release 1.3.1
* Makefile.am (EXTRA_DIST): Dist fixes.
* configure.in: Moderate the warnings just a little bit.
Mon May 29 14:10:35 2000 Owen Taylor <otaylor@redhat.com>
* gutils.c (g_locale_get_codeset): Add function to get the
codeset name for the current locale.
* configure.in acconfig.h: Add check for nl_langinfo(CODESET);
Fri Apr 28 23:54:35 2000 Tim Janik <timj@gtk.org>
* setup things for a new sub-library libgobject:
* Makefile.am (SUBDIRS): added gobject
* glib-config.in: feature -lgobject.
* configure.in (AC_OUTPUT): generate gobject/Makefile.
* glib.m4 (AM_PATH_GLIB): feature gobject module.
* glib.spec.in: added %{prefix}/lib/libgobject-1.3.so.*
Fri Apr 28 21:41:49 2000 Tim Janik <timj@gtk.org>
* glib.h: added G_STRLOC macro.
G_STRUCT_OFFSET(): signedness corrections.
(G_CSET_DIGITS): list 0-9.
* gscanner.c (g_scanner_config_template): use G_CSET_DIGITS.
* glib.h:
* gstrfuncs.c:
(g_strdown):
(g_strup):
(g_strreverse): return the modified string instead of void, so
calls to these functions can be nested.
(g_strcanon): new function, canonicalizes string according to
a given character set.
Fri Apr 28 19:45:16 2000 Tim Janik <timj@gtk.org>
* gasyncqueue.c (g_async_queue_unref): get rid of an unused variable.
2000-04-26 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Look for both pthread_create and pthread_join in
the thread library. Some systems define one of them, but not both
in libc. Arghh. Now we really start a thread and join it later and
check, whether the thread to actually ran.
2000-04-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, acconfig.h: Add configure test for garbage
collector friendliness for GLib. If enabled, ENABLE_GC_FRIENDLY
will be defined.
* garray.c, ghash.c, glist.c, gmain.c, gmem.c, gnode.c, gqueue.c,
gslist.c, gtree.c: If ENABLE_GC_FRIENDLY is defined, NULLify all
memory released by the user, but cached by GLib. This lets a
garbage collector have a more correct view of the actually used
memory.
2000-03-23 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: After finding the right thread library (containing
e.g. pthread_create) we now search for the right realtime library
(containing e.g. sched_get_priority_max). Makes the output of the
thread related libraries correct.
* gtimer.c (g_usleep): The current implementation of g_usleep
(simply calling select) doesn't work reliable for multi-threaded
programs on some platforms (bad omen for the main loop....), so I
changed the implementation for thread-using programs to wait for a
GCond for the specified amount of time (NB: sleep and usleep are
not MT-safe in general, because they often use signals).
2000-03-22 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Test for sched_yield as the native yield function
first. Corrected typo g_thread_sleep -> g_usleep. Corrected
message for the pthread_create test. Negative Priorities are
allowed (and used on Solaris), so consider
sched_get_priority_min failed only if it returns -1, not <0. Check
for sched_get_priority_min also in -lrt, if not found in -lpthread
alone and add -lrt to G_THREAD_LIBS then. Remove special case
handling of priorities for older solaris versions and posix
threads. Thanks to Wan-Teh Chang <wtc@netscape.com> for suggesting
some of those changes.
* config.guess, config.sub, ltconfig, ltmain.sh:
Upgrade to libtool 1.3.4.
2000-03-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, configure.in, gutils.h: always define G_GNUC_EXTENSION,
even when not needed by GLib. That's actually also the way, the
GLib reference manual describes that macro. Therefore I had to
remove the lonesome #include <glibconfig.h> in gutils.c, which
doesn't seem to be needed there however. This change should make
Ben Gertzfield <che@debian.org> happy.
* gutils.c: Furthermore two warnings in gutils.c were voided,
which crept in due to my last change.
2000-03-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Added the missing POSIX_NO_YIELD and
POSIX_NO_PRIORITIES warning messages.
* configure.in: Use AC_TRY_RUN instead of AC_TRY_LINK, to test for
real thread support. On solaris pthread_create can be linked to
even in -lc, but it doesn't work then.
* configure.in: Don't use priorities for threads, when the
minimal/maximal priorities couldn't be determined at configure
time.
* configure.in, gthread.c: Always define GSystemThread in
glibconfig.h to represent a system thread.
* configure.in: Do not use native recursive threads, when
possibe. We use some features, that they do not expose (namely the
depth counter).
* glib.h, gthread.c: Redefined GStaticRecMutex. The functions are
now implemented in a different way, which should be way
faster. Alsothere are now functions g_static_rec_mutex_unlock_full
and g_static_rec_mutex_lock_full to leave/enter a recursive mutex
completly.
* gthread.c (g_thread_self): Do not test the system_thread to be
non-zero to speed things up.
* gthread.c (g_mutex_init): Therefore set the system_thread of the
main thread here.
* tests/thread-test.c: Rerun all tests once again, but this time
we fool the system into thinking, that the available thread system
is not native, but userprovided.
* gthread/gthread-posix.c: Don't use priorities for threads,
when the minimal/maximal priorities couldn't be determined at
configure time.
* gthread/gthread-posix.c: Don't check for errors, when
setting the scope of a tread to system, as some posix
implementations can't do that and we don't want the thing to
fail because of that.
2000-03-03 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Make the search for pthread_attr_... prototypes
find names at the start of a line also, like it is on AIX. Thanks
to Valdis Kletnieks <Valdis.Kletnieks@vt.edu> for the info.
2000-02-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Changed GCC version test to also accept major
versions > 2. Thanks to Ben Gertzfield <che@debian.org> for
pointing this out.
Sun Feb 13 08:16:47 2000 Tim Janik <timj@gtk.org>
* configure.in: wtf??? someone destroyed the configure.in, reverting to
an older version from Feb 4 which apears to still work.
2000-02-05 Tor Lillqvist <tml@iki.fi>
* glib.rc.in gmodule.rc.in gthread.rc.in: New files, for putting
version info in the DLLs on Win32.
* Makefile.am: Generate corresponding *.rc files and distribute
them.
* makefile.cygwin.in: Add rules to automatically bump a "build
number" in the version info in the rc files each time the DLL is
built. But do this only for the person who releases binaries. If
others build the DLLs, the build number is set to zero.
1999-11-16 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* acconfig.h, config.h.win32.in, configure.in: Renamed
GLIB_SIZEOF_PTHREAD_T to GLIB_SIZEOF_SYSTEM_THREAD to reflect
changed meaning.
* configure.in: Cope with systems, that have a pthread_t type,
that is not a pointer. Hint from Karl Nelson
<kenelson@ece.ucdavis.edu>. Define GLIB_SIZEOF_SYSTEM_THREAD to 4
for Solaris. Cope with systems, that have no default mutex
initialize, like obviously most DCE systems.
* glib.h, gthread.c: Changed the prototype of thread_create and
thread_self to return the system thread into provided memory
instead of a return value. This is necessary, as HPUX has a
pthread_t, that is bigger than the biggest integral type there.
* gthread.c: system_thread is no longer a pointer, but an memory
area of size GLIB_SIZEOF_SYSTEM_THREAD. Changed the
zeroinitialization and the tests for zeroness accordingly.
1999-11-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Create docs/glib-config.1 from
docs/glib-config.1.in. Makes 'make distcheck' happy (and me too).
* glib-config.1: Removed from CVS, as it is a generated file.
1999-11-08 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Make the test for getpwuid_r work on newer AIX
versions, too. Still works on Solaris and Linux. Patch from Craig
Rodrigues <rodrigc@mediaone.net>.
Tue Oct 12 12:16:12 1999 Tim Janik <timj@gtk.org>
* gmessages.c (g_printf_string_upper_bound): completly new implementation
for printf string upper bounds calculation.
we handle all glibc 2.1 format specifiers now, except for positional
parameters (%nn$...) and wide char strings, plus some obscure upper
case variants of the standard conversions. this fixes a lot of
bugs in the old code, i.e.
- NULL format strings
- floats with exponents >+24
- %G
- precision specifications in general
- negative field widths
- %p for SIZEOF_VOID_P > 4 platforms
we now issue warnigns in places where the old code would have
caused buffer overruns anyways. warnings are suppressed when invoked
from glogv(), to avoid infinite recursions if someone passes a log
message that comes with really obscure format specifications.
Tue Oct 12 11:49:00 1999 Tim Janik <timj@gtk.org>
* gstrfuncs.c: nuked old g_printf_string_upper_bound() version.
Tue Oct 12 03:34:40 1999 Tim Janik <timj@gtk.org>
* glib.h: added GFloatIEEE754 and GDoubleIEEE754 unions to access sign,
mantissa and exponent of IEEE floats and doubles (required by the new
version of g_printf_string_upper_bound). the unions are endian specific,
we handle G_LITTLE_ENDIAN and G_BIG_ENDIAN as of currently. ieee floats
and doubles are supported (used for storage) by at least intel, ppc and
sparc, reference:
http://twister.ou.edu/workshop.docs/common-tools/numerical_comp_guide/ncg_math.doc.html
Mon Oct 11 18:01:49 1999 Tim Janik <timj@gtk.org>
* configure.in: added additional checks to figure sizes of size_t,
ptrdiff_t and intmax_t (required by g_printf_string_upper_bound).
Sun Aug 15 02:47:14 1999 Tim Janik <timj@gtk.org>
* glib.h (g_trash_stack_pop): eliminate memset() call, since string.h
has not neccessarily been included prior to glib.h.
Mon Aug 2 21:03:10 1999 Tim Janik <timj@gtk.org>
* configure.in: added --enable-msg-prefix option.
* gmessages.c (g_log_default_handler): feature "prg_name (pid:%u): "
if --enable-msg-prefix was selected (use "(process:%u): " if
g_get_prgname () returns NULL, along the lines of g_on_error_query).
Sat Jul 24 20:11:35 1999 Tim Janik <timj@gtk.org>
* merged GLib 1.3.0 with glib-1.2.3 from Fri Jul 16 22:18:36.
* incorporated proposed cleanups from gtk-devel-list.
* bumped version number to GLib-1.3.1
* glib.h:
* gqueue.c:
* gstring.c:
* glist.c:
removed string tokenisation (we got g_strsplit() and g_strjoin()
already) and readline functions.
s/g_list_delete/g_list_delete_link.
implemented g_slist_delete_link.
removed notion of g_ATEXIT() macro in glib.h, this is an *internal*
macro, g_atexit() is provided for public consumption.
added GTrashStack inline utility functions.
reimplement double eneded queues.
removed GStack implementation, people can use a queue or a (singly)
linked list for this task.
deprecated g_strescape(), we need the SunOS variants here.
* gdate.c: added DEBUG_MSG() macro to wrap old messages.
* *.*: CVS merges.
* upgrade to libtool 1.3.3.
1999-07-07 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Test for pthread_join rather than for
pthread_create to determine the right thread-lib. Makes it work on
mips-sgi-irix6.5. Hitn from to Jari Vuoksenranta
<javu@piano.ux.phys.jyu.fi>.
1999-07-01 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, acconfig.h, gutils.c: Added a g_memmove
replacement for platforms without memmove, where bcopy can't
handle overlapping copies and the corresponding checks, which is
taken form the PERL Configure routine.
* glib.h: Updated the commentary about g_memmove to be right and
more GLib-like.
* configure.in: Removed test for rand_r, as it isn't used anymore.
1999-06-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, acglib.m4, acconfig.h, glib.h, gthread.c:
Completed the thread support in GLib. Thread creation,
prioritizing threads, yielding, joining threads as well as
reader/writer locks and recursive mutexes are now in place. Please
test heavily on your platform. It is so far tested on
Linux/i386/pthreads, Solaris/Sparc/pthreads and
Solaris/Sparc/solaristhreads.
* gtimer.c, glib.h: Implement g_usleep (gulong microseconds) for
thread safe sleeping. (sleep() is not MT-safe at all!)
* gutils.c: Avoid compiler warning.
* tests/Makefile.am, tests/thread-test.c: New program to test some
aspects of the thread implementation.
* gthread.c, Makefile.am: Renamed from gmutex.c to reflect the
change of content.
* configure.in: Purged all appearances of nspr.
* gthread/gthread-posix.c, gthread-solaris.c: Added the native
implementations for the GLib's extended thread support.
* gthread/gthread-nspr.c: Removed for good. NSPR is nothing we
would want to build upon.
* gthread/gthread.c: Renamed to gthread-impl.c to avoid
confusion with ../gthread.c (Formerly known as the file called
gmutex.c)
* gthread/testgthread.c: Removed. The new and much extended
tests are in ../tests/thread-test.c.
* gthread/Makefile.am: Changed to reflect the changes above.
Sat May 8 01:52:29 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
* configure.in
gerror.c
gmain.c
gstrfuncs.c
gutils.c
ltconfig
ltmain.sh
gmodule/Makefile.am
gmodule/gmodule.c
gmodule/gmoduleconf.h.in
gmodule/gmodule-beos.c
gthread/Makefile.am: Port to BeOS by myself and Richard Offer.
* makefile.msc.in makefile.cygwin.in glibconfig.h.win32.in
config.h.win32.in tests/makefile.msc.in tests/makefile.cygwin.in:
New files, used to generate corresponding non-.in files when
making a dist. This is just so the version numbers will be kept in
synch automatically.
* configure.in: Also substitute @GLIB_MAJOR_VERSION@,
@GLIB_MINOR_VERSION@, and @GLIB_INTERFACE_AGE@.
* Makefile.am tests/Makefile.am: Also distribute makefile.cygwin.
* gerror.c (g_on_error_query): On Win32, put up a MessageBox and
then exit.
* glib.def: Add a couple of functions.
1999-03-30 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Added a check for the right format to printf and
scanf long longs. It is %qi instead of %lli on FreeBSD for
whatever reason.
1999-03-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: added new AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
to hold various defines to get the right thread implementation on
different platforms. Also look in -ldce for pthread_create. Should
make it work on HP-UX 10.x.
* gthread/Makefile.am (INCLUDES): Added @GTHREAD_COMPILE_IMPL_DEFINES@.
1999-03-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Added missing values for G_MAXU(SHORT|INT|LONG) on
platforms with only /usr/include/values.h.
* acconfig.h: Removed unnecessary macros.
* glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
from config.h.win32 to glibconfig.h.win32. Taken from glib 1.2
branch.
* configure.in: Also accept _Pctime_r instead of ctime_r, while
seraching for the right `_REENTRANT' flag. This is for Digital
UNIX 4.0d. Taken from glib 1.2 branch.
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
* merges from glib-1-2:
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
to g_return_if_fail().
(g_mem_profile):
(g_mem_chunk_print):
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
messages.
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
to g_return_if_fail().
* grel.c (g_*): changed a bunch of g_assert() statements to
g_return_if_fail() and added some extra ones to check relation != NULL.
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
* configure.in: check for working realloc (NULL,).
* gmem.c (g_realloc): use malloc() for initial allocation on systems
where realloc(NULL,) will not work (this is the case on SunOS, reported
by Tom Geiger).
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
flag around the call to g_hook_free() to avoid spurious
warnings (happens during destruction phase).
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
1999-03-16 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Removed G_(U)?INT8_FORMAT again, as it can't be
used for scanf.
* configure.in: Added the macros G_MAXU(SHORT|INT|LONG). I do not
know how to handle these on platforms with /usr/include/values.h,
but without /usr/include/limits.h. Please someone add this.
1999-03-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Added the macros G_(U)?INT_(8|16|32|64)_FORMAT to
use for printf and (much more important) scanf format strings for
the corresponding GLib types.
* glib.h Added G_(U)?(SHORT|INT|LONG)_FORMAT for consistency. It
however makes no sense to also provide G_(FLOAT|DOUBLE)_FORMAT, as
they are different for printf (f for both) and scanf (f for float,
lf for double). Defining G_INT_FORMAT makes sense however, as we
might want to define gint to something different than int someday
in the future. Idea from Sascha Brawer <sb@adasys.ch>.
* configure.in (glibconfig.h): Remove widechar tests and defines.
(fd_set): Change the grep for `fd_mask' to search for `fd_set'.
* gerror.c (fd_mask): Remove conditional typedef. It is not used
elsewhere in the file.
* gmain.c (fd_mask): Likewise.
1999-03-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Test for posix threads first, then for dce threads.
* gthread/gthread-posix.c (g_private_get_posix_impl): Fixed
typo for DCE implementation.
1999-03-11 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Revamped the thread configure stuff. Now dce
threads (old posix draft) are recogniced. This is necessary,
because dce threads are in fact working quite differently from
posix threads. Also changed the conditions for checking for MT
safe functions a bit, because G_THREADS_IMPL_NONE still have to
compile thread safe.
* gthread/gthread-posix.c: Now handle both dce and posix
threads. They are sufficently equal.
NOTE: Please do not commit my change to
glib-1-2/{acconfig.h,configure.in,config.h.win32} from 1999-03-03, as
the current change will take care of that too.
Sat Feb 27 01:18:47 1999 Tim Janik <timj@gtk.org>
* ChangeLog: moved old ChangeLog to ChangeLog.pre-1-2, and started
new one.
* configure.in: set glib version to 1.3.0.
1999-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, glibconfig.h.win32, configure.in: Changed signature of
all g_static_mutex_* functions to take a pointer rather than the
struct itself. This is not an issue at the moment, because those
funcs are really macros, but is it un'G'ish and might fall on our
feet in the future.
* gthread/testgthread.c (test_mutexes): Use new signature of
g_static_mutex* functions.
Wed Feb 10 12:06:30 1999 Tim Janik <timj@gtk.org>
* gmodule.c (CHECK_ERROR): be more descriptive on unsupported systems.
Wed Feb 10 12:01:42 1999 Tim Janik <timj@gtk.org>
* configure.in: don't reset G_MODULE_IMPL, so it can be overridden
from the command line.
1999-02-08 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, acconfig.h: Changed the test for getpwuid_r to
exclude those systems (i.e. IRIX), that set ENOSYS after the call.
Test, if pthread_getspecific is posix like or something different,
as on PCThreads.
* gthread/gthread-posix.c (g_private_get_posix_impl): Use the
HAVE_PTHREAD_GETSPECIFIC_POSIX macro to determine, which signature
to use for pthread_getspecific.
1999-02-05 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Make the error message in case of a broken thread
system a bit more informative.
* gutils.c (g_get_any_init): Changed the error logic again, now
only leaving the memory doubling loop, when success is reached or
when the user isn't found or when the buffer is 32k big,
additionally now getpwuid will be run, if getpwuid_r didn't work
out properly. A warning is issued however.
1999-01-30 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Moved the check for MT save function variants
after the determination of the MT cflags and use them there.
1999-01-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Simplified configure.in test for posix threads,
systems, that provide /usr/include/pthread.h should also have the
posix thread library. This is to avoid writing down all the tests
twice. New test for thread system on HPUX 11. Info from Matt
Nottingham <matt@sar.dera.gov.uk>.
Wed Jan 27 01:57:19 1999 Tim Janik <timj@gtk.org>
* configure.in (G_MODULE_HAVE_DLERROR): applied patch from Andrej
Borsenkow <borsenkow.msk@sni.de> to also check for dlsym() in system
libraries and -ldl, to catch systems that provide dlopen() in libc
and dlsym() in libdl. this is at least the case for Reliant UNIX
5.44 (labeling itself as SINIX).
1999-01-26 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gdate.c (g_date_set_time): Removed the #warning about MT
unsafety without localtime_r.
* configure.in: Moved it here.
1999-01-25 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Do not use the thread libs, when searching for
some functions, as this might require glib to always be linked
with the thread libs on some platforms.
* gutils.c (g_get_any_init): Don't set errno to zero and use it
only as the error code, if the function returned a value less
0. It might happen, that the call succeeds, even though the errno
is set during the call (i.e. it first looks for a passwd file,
which is not found). Submitted by Michael Natterer
<mitschel@cs.tu-berlin.de>. BTW: Sorry for all the mess with that
`getpwuid_r' change, but it had to be done once.