Commit Graph

451 Commits

Author SHA1 Message Date
Ryan Lortie
3f41e49285 Use POSIX-specified <poll.h> over <sys/poll.h>
POSIX specifies that <poll.h> is the correct header to include for
poll(), so let's do that instead.

https://bugzilla.gnome.org/show_bug.cgi?id=141251
2013-12-22 11:33:07 -05:00
Matthias Clasen
2f01b0975e Some tweaks to coverage support
Rename the configure option to --enable-coverage, and make
it quiet by default.
2013-12-21 13:22:00 -05:00
Matthias Clasen
4846fd923d Bump version 2013-12-17 00:45:41 -05:00
Matthias Clasen
698393f15d Fix the stack direction check again
Turns out I got it wrong.
2013-11-23 21:09:32 -05:00
Matthias Clasen
341c0b1988 Improve stack direction detection
When the function in the test program is inlined, all bets are
off whether the detection will work correctly or not. Make it
harder for the compiler to play games on us by making the
function recursive.

https://bugzilla.gnome.org/show_bug.cgi?id=307947
2013-11-23 20:27:04 -05:00
Matthias Clasen
df71ecfc2d Fix the configure check for growing stack
The check was getting the direction wrong, as proven by the
just committed signal invocation hint test.

https://bugzilla.gnome.org/show_bug.cgi?id=711871
2013-11-23 20:26:10 -05:00
Dan Winship
158dde0507 Replace #ifdef HAVE_UNISTD_H checks with #ifdef G_OS_UNIX
In Windows development environments that have it, <unistd.h> is mostly
just a wrapper around several other native headers (in particular,
<io.h>, which contains read(), close(), etc, and <process.h>, which
contains getpid()). But given that some Windows dev environments don't
have <unistd.h>, everything that uses those functions on Windows
already needed to include the correct Windows header as well, and so
there is never any point to including <unistd.h> on Windows.

Also, remove some <unistd.h> includes (and a few others) that were
unnecessary even on unix.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:25:39 -05:00
Dan Winship
3981cddbf8 Require POSIX.1 (1990) compliance on unix
Assume unix platforms support the original POSIX.1 standard.
Specifically, assume that if G_OS_UNIX, then we have chown(),
getcwd(), getgrgid(), getpwuid(), link(), <grp.h>, <pwd.h>,
<sys/types.h>, <sys/uio.h>, <sys/wait.h>, and <unistd.h>.

Additionally, since all versions of Windows that we care about also
have <sys/types.h>, we can remove HAVE_SYS_TYPES_H checks everywhere.

Also remove one include of <sys/times.h>, and the corresponding
configure check, since the include is not currently needed (and may
always have just been a typo for <sys/time.h>).

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:17:42 -05:00
Dan Winship
6e4a7fca43 Require C90 compliance
Assume all supported platforms implement C90, and therefore they
(correctly) implement atexit(), memmove(), setlocale(), strerror(),
and vprintf(), and have <float.h> and <limits.h>.

(Also remove the configure check testing that "do ... while (0)" works
correctly; the non-do/while-based version of G_STMT_START and
G_STMT_END was removed years ago, but the check remained. Also, remove
some checks that configure.ac claimed were needed for libcharset, but
aren't actually used.)

Note that removing the g_memmove() function is not an ABI break even
on systems where g_memmove() was previously not a macro, because it
was never marked GLIB_AVAILABLE_IN_ALL or listed in glib.symbols, so
it would have been glib-internal since 2004.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:16:16 -05:00
Dan Winship
7f5b2901cf Remove alleged support for last-millennium Unixes
Remove workarounds for NeXTStep (last released in 1995), SunOS (1994),
HP-UX 9.x (1992) and 10.x (1995), OSF/1 / Digital UNIX / Tru64 UNIX
4.x (1999), and AIX 4.x (1999).

HP-UX 11 implements dlopen(), so dropping support for earlier versions
also lets us remove the HP-UX-specific gmodule-dld.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:16:16 -05:00
Dan Winship
51a917bc16 Remove alleged support for BeOS
Since the initial addition of BeOS support in 1999, there has only
been one update to it (in 2005, and it wasn't even very big). GLib is
known to not currently build on Haiku (or presumably actual BeOS)
without additional patching, and the fact that there isn't a single
G_OS_BEOS check in gio/ is suspicious.

Additionally, other than the GModule implementation, all of the
existing G_OS_BEOS checks are either (a) "G_OS_UNIX || G_OS_BEOS", or
(b) random minor POSIXy tweaks (include this header file rather than
that one, etc), suggesting that if we were going to support Haiku, it
would probably be simpler to treat it as a special kind of G_OS_UNIX
(as we do with Mac OS X) rather than as its own completely different
thing.

So, kill G_OS_BEOS.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:16:16 -05:00
Michael Haubenwallner
1f0573d2e6 AIX splice() is something different
AIX does provide the splice() symbol, but this does have different
signature and usecase than what Linux may provide.

https://bugzilla.gnome.org/show_bug.cgi?id=712314
2013-11-18 14:48:55 -05:00
Michael Haubenwallner
efb1701bf3 Use AC_HEADER_MAJOR
Instead of checking for sys/mkdev.h headerfile, there is the
AC_HEADER_MAJOR helper for how to get major(), minor(), makedev().

https://bugzilla.gnome.org/show_bug.cgi?id=712314
2013-11-18 14:47:53 -05:00
Ryan Lortie
d33f758313 bump version 2013-11-12 00:19:50 -05:00
Ryan Lortie
c0865fbaf2 bump version
dconf needs the new version with read_user_value() on the backend API.
2013-10-28 10:23:29 -07:00
John Ralls
5aead642c2 Restore gl_GLIBC21 to configure; needed for libcharset 2013-10-04 11:47:46 -07:00
William Orr
7eb1e5fc5b glocalfile: Only use O_DIRECTORY if available
Solaris 10 for example doesn't have it.

https://bugzilla.gnome.org/show_bug.cgi?id=708860
2013-09-26 15:22:51 -04:00
Ryan Lortie
d974d2ec8f Bump version to 2.39.0 2013-09-23 17:47:49 -04:00
Ryan Lortie
c8de2b11bb GLib 2.38.0 2013-09-23 17:07:33 -04:00
Ryan Lortie
373980f545 bump 2013-09-16 14:14:07 -04:00
Ryan Lortie
f4c3e56f19 GLib 2.37.92 2013-09-16 13:47:04 -04:00
Matthias Clasen
801a5c8bb2 bump version 2013-09-02 12:12:58 -04:00
Antoine Jacoutot
996edb0c46 fix atomic ops detection
AC_TRY_LINK should be used instead of AC_TRY_COMPILE because the code
will compile everywhere, either producing ``atomic'' code, or an
external reference to __sync_bool_compare_and_swap.

https://bugzilla.gnome.org/show_bug.cgi?id=706958
2013-08-28 12:01:44 +02:00
Matthias Clasen
a4363582b0 post-release bump 2013-08-19 23:54:43 -04:00
Matthias Clasen
0f46a48ee3 post-release version bump 2013-07-29 18:07:32 -04:00
Colin Walters
331e93c3f1 Drop iconv caching code
This was introduced for Solaris performance theoretically;
we have never been able to use it on Linux/glibc because
the UTF-16 BOM state isn't reset.

We have no data about Solaris performance; were some to
still exist, we could reintroduce the code with an explicit
check for Solaris, not a check for glibc.

https://bugzilla.gnome.org/show_bug.cgi?id=704999
2013-07-28 18:37:47 -04:00
Colin Walters
d2bb019533 configure: Use AC_USE_SYSTEM_EXTENSIONS
...instead of detecting glibc and using _GNU_SOURCE manually.  This
should fix the build when using glibc-emulating libraries; we can
defer portability work to autoconf.

https://bugzilla.gnome.org/show_bug.cgi?id=684123
2013-07-26 19:46:21 +01:00
Matthias Clasen
542099b5ad bump version 2013-07-09 14:28:19 -04:00
Sebastian Dröge
dbdfcb69ce gthread: Use pthread_cond_timedwait_monotonic() if available
Otherwise we have to rely on pthread_cond_timedwait() actually using
the monotonic clock, which might be true or not. On Android at least
it is using the realtime clock, no pthread_condattr_setclock() is available
but instead pthread_cond_timedwait_monotonic() can be used.
2013-07-04 10:41:59 +02:00
Ryan Lortie
5841267a6c version bump 2013-06-24 12:13:30 -04:00
Matthias Clasen
f9e47f1f2f Bump version 2013-06-17 12:56:40 -04:00
Dan Winship
16b26231ca gio/tests/inet-address: fix to work on OS X
OS X's getaddrinfo() only supports IPv6 scope IDs that are interface
names, not numbers. So use if_indextoname() to get the name of an
interface and construct an address using that.

https://bugzilla.gnome.org/show_bug.cgi?id=700123
2013-06-04 09:24:47 -03:00
Ryan Lortie
c828aef014 g_file_set_contents: change {posix_ => }fallocate
Use fallocate() instead of posix_fallocate() so that we just fail
instead of getting the emulated version from the libc.

https://bugzilla.gnome.org/show_bug.cgi?id=701560
2013-06-03 22:55:20 -04:00
Ryan Lortie
d3be43fcc5 g_file_set_contents(): use posix_fallocate()
Extents-based filesystems like knowing in advance how much data will be
written to a file in order to prevent fragmentation.  If we have it, use
posix_fallocate() before writing data in g_file_set_contents().

https://bugzilla.gnome.org/show_bug.cgi?id=701560
2013-06-03 16:12:04 -04:00
Ryan Lortie
f9eb9eed10 Rework the build system for a new tests approach
Perform a substantial cleanup of the build system with respect to
building and installing testcases.

First, Makefile.decl has been renamed glib.mk and substantially
expanded.  We intend to add more stuff here in the future, like canned
rules for mkenums, marshallers, resources, etc.

By default, tests are no longer compiled as part of 'make'.  They will
be built when 'make check' is run.  The old behaviour can be obtained
with --enable-always-build-tests.

--disable-modular-tests is gone (because tests are no longer built by
default).  There is no longer any way to cause 'make check' to be a
no-op, but that's not very useful anyway.

A new glibtests.m4 file is introduced.  Along with glib.mk, this
provides for consistent handling of --enable-installed-tests and
--enable-always-build-tests (mentioned above).

Port our various test-installing Makefiles to the new framework.

This patch substantially improves the situation in the toplevel tests/
directory.  Things are now somewhat under control there.  There were
some tests being built that weren't even being run and we run those now.
The long-running GObject performance tests in this directory have been
removed from 'make check' because they take too long.

As an experiment, 'make check' now runs the testcases on win32 builds,
by default.  We can't run them under gtester (since it uses a pipe to
communicate with the subprocess) so just toss them in TESTS.  Most of
them are passing on win32.

Things are not quite done here, but this patch is already a substantial
improvement.  More to come.
2013-05-31 23:12:15 -04:00
Ryan Lortie
9cfac6e76c Bump version. 2013-05-30 13:50:42 -04:00
Matthias Clasen
b5463f4cf4 Work with ltp 1.10 2013-05-29 08:37:50 -04:00
Colin Walters
ad7959c5b7 Add --enable-installed-tests configure option
See https://live.gnome.org/GnomeGoals/InstalledTests for more
information.

The tests now support being run both uninstalled and installed, so
'make check' works for those who want it.  For tests which need data
files, the way this works is they look in the compiled in value of
SRCDIR by default, and the generated tests use "env G_TEST_DATA=" to
override that.

This patch only converts glib/tests for now; if this patch looks good,
I'll do the rest of the tests.

https://bugzilla.gnome.org/show_bug.cgi?id=699079
2013-05-16 08:51:57 -04:00
Matthias Clasen
631cf195c8 Bump version to 2.37.1 2013-05-01 05:20:02 -04:00
Colin Walters
518e3104bf configure: Assume C90 compatible malloc() prototype
This ancient code was attempting to cope with (unknown) systems whose
malloc() prototype was incompatible with the standard.  This test was
fragile; it would break if the build environment provided -Wall in
CFLAGS.

Now that it's 2013, let's assume that target systems have a sane
malloc().  If someone complains, we can revisit this.

https://bugzilla.gnome.org/698716
2013-04-26 16:23:42 -04:00
Sebastian Dröge
bcbaf1bef0 Fix compilation on Android with the bionic C library
https://bugzilla.gnome.org/show_bug.cgi?id=689223
2013-04-16 13:24:26 +02:00
Руслан Ижбулатов
2ca9dda72a win32: Allow POSIX threads to be used if --with-threads=posix
All tests pass with this patch AND a good pthreads implementation
(i'm using winpthreads, not pthreads-w32).

https://bugzilla.gnome.org/show_bug.cgi?id=697626
2013-04-09 14:10:13 +02:00
Руслан Ижбулатов
c237338b04 Use AC_LINK_IFELSE instead of AC_TRY_COMPILE
Fixes #665445
2013-04-09 11:55:42 +02:00
Ryan Lortie
812bb6cff0 bump version for start of unstable branch 2013-03-25 17:49:20 -04:00
Ryan Lortie
bea56fc270 GLib 2.36.0 2013-03-25 17:39:21 -04:00
Colin Walters
156b14cde5 build: Add --disable-compile-warnings
Some (broken) toolchains for example trip up
-Werror=missing-prototypes in system headers.  This patch allows
people to skip the formerly hardcoded "baseline" warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=694757
2013-02-27 08:34:01 -05:00
Behdad Esfahbod
547221b486 [win32] Fix atomic ops on mingw*
Bug 682896 - glib doesn't build on mingw32
2013-02-25 22:48:03 -05:00
Ryan Lortie
d21699a272 *bump* 2013-02-19 10:06:55 +00:00
Ryan Lortie
766dec9670 GLib 2.35.8 2013-02-19 09:29:28 +00:00
Matthias Clasen
23d6d1769b Fix the build on Solaris
Make the btrfs support explicitly linux-only, as that is what it
is. With this, there's no need anymore to check for sys/ioctl.h
either.
https://bugzilla.gnome.org/show_bug.cgi?id=692829
2013-02-10 12:23:02 -05:00
Dan Winship
2f61a877d8 build: fix configure arpa/nameser.h test for Solaris
https://bugzilla.gnome.org/show_bug.cgi?id=692827
2013-02-07 08:41:00 -05:00
Andoni Morales Alastruey
7f9af8071c configure: fix check for atomic operations
Some compilers have support for atomic operations, but do not
define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4. Instead of checking
for this define, we check for __sync_bool_compare_and_swap and
define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 if the compiler doesn't
define it.

https://bugzilla.gnome.org/show_bug.cgi?id=682818
2013-02-04 21:58:10 -05:00
Matthias Clasen
6bcb1c0ed6 Post-release version bump 2013-02-03 15:14:57 -05:00
Matthias Clasen
3fe8ed04c7 2.35.6 2013-02-03 14:25:09 -05:00
Dan Winship
455afd3545 build: fix a srcdir != builddir problem with gnetworking.h
gio's glib-mkenums call needs to get gnetworking.h out of $(builddir),
not $(srcdir). Fix/simplify it by using $(filter) on $^ and letting
make find everything.

Also add -Wno-portability to AM_INIT_AUTOMAKE in configure.ac, so that
it doesn't warn about this (or about the gmake-specific features we
were already using in gio/tests/)

https://bugzilla.gnome.org/show_bug.cgi?id=691866
2013-01-23 12:49:29 -05:00
Ryan Lortie
304950a7ac Remove regexp-based export control 2013-01-17 10:49:37 -05:00
Matthias Clasen
c4d8eafd00 Bump version 2013-01-15 00:24:27 -05:00
Ryan Lortie
5d42fdd068 visibility: Use a separate CFLAGS variable
We only want to control the default visibility for our five main
installable libraries: libglib, libgthread, libgmodule, libgobject,
libgio.  We should therefore only set -fvisibility=hidden when building
those.

Use a separate substitution variable for this purpose.

Using CFLAGS directly leads to some modules built in testcases not
exporting their symbols (and then the tests fail).  It also affects the
fam file monitoring module.

Colin had originally done it this way in his visibility patch series but
I failed to understand why so I didn't copy it.  Now I do.

Also: revert changes made to two testcases in an attempt to work around
this issue.

https://bugzilla.gnome.org/show_bug.cgi?id=691756
2013-01-14 23:31:59 -05:00
Ryan Lortie
2e7669f5cc configure.ac: change our visibility policy
Check for -fvisibility=hidden as a supported CFLAG.

If it is supported, use it and emit an AC_DEFINE to change the meaning
of _GLIB_EXTERN to include the GNU attribute for marking symbols as
public: __attribute((visibility("default"))).

This will override the public definition of _GLIB_EXTERN for any file
which does #include "config.h" (forcing all our .c files to do so, as a
side effect).

If we're on mingw, assume that -fvisibility will work and also throw in
a __declspec(dllexport) for good measure.  This will allow us to move
away from using a .def file to create the the various DLLs.

It's possible that there may be compilers that accept
-fvisibility=hidden but don't accept the GNU attribute for making
symbols public again -- we will hopefully receive bugs if any of those
exist.

https://bugzilla.gnome.org/show_bug.cgi?id=688681
2013-01-13 22:59:40 -05:00
Henrique Dante de Almeida
0864e3bd6f build: Ensure user-set CFLAGS override defaults
For example, the user should be able disable our default -Werror
settings.

https://bugzilla.gnome.org/show_bug.cgi?id=691608
2013-01-13 10:47:25 -05:00
Javier Jardón
6513e656c0 configure.ac: replace obsolete AC_CONFIG_HEADER with with AC_CONFIG_HEADERS
The former is an obsolete alias to the latter.
It may get removed in the future.
2013-01-07 15:41:19 +00:00
Nirbheek Chauhan
5eba978497 GFile: Add Btrfs clone ioctl support
The attached patch adds support for the btrfs "clone" ioctl which
makes Copy-on-Write reflinks, resulting in cheap O(1) copies when
source/destination are on the same filesystem. The ioctl itself is
quite straightforward, and GNU coreutils has had support since 7.5
(--reflink=auto --sparse=auto).

The ioctl only operates on regular files and symlinks, and always
follows symlinks; checks have been added accordingly.

This patch would be very useful for everyone who uses btrfs
filesystems (Meego folks for instance). On systems that don't have
btrfs, or if the the source is not on a btrfs filesystem, the ioctl
returns EINVAL, and the fallback code is triggered. Hence this will
cause no problems for non-btrfs users.

https://bugzilla.gnome.org/show_bug.cgi?id=626497
2013-01-05 14:21:25 -05:00
Marko Lindqvist
5fbdd3aa27 Remove deprecated AM_PROG_CC_STDC
Fixes automake 1.13 build.

https://bugzilla.gnome.org/show_bug.cgi?id=691011
2013-01-03 19:22:16 -05:00
Matthias Clasen
3e5068c186 Add a --with-python option
The effect is the same as specifying PYTHON=python3, but a
configure option works better in jhbuild.
https://bugzilla.gnome.org/show_bug.cgi?id=684103
2013-01-01 15:49:06 -05:00
Tristan Van Berkom
32c9254277 Adding test coverage for GTestDBus activating in-tree services.
https://bugzilla.gnome.org/show_bug.cgi?id=690543
2012-12-28 21:28:28 -05:00
Daniel Macks
79fab3e647 Add missing autoconf test for sysctlbyname()
uses specific mib[] tokens iff it is available, but configure wasn't
testing for it to be available.

https://bugzilla.gnome.org/show_bug.cgi?id=689324
2012-12-19 14:32:24 -05:00
Matthias Clasen
9061d91605 bump version 2012-12-17 19:18:13 -05:00
PHO
72d7d23402 Remove an unneeded escaping in NAMESER_COMPAT_INCLUDE
In configure.ac, escaping '#' in NAMESER_COMPAT_INCLUDE results in the following gio/gnetworking.h, which obviously doesn't compile:

  #include <arpa/inet.h>
  #include <arpa/nameser.h>
  \#include <arpa/nameser_compat.h>

https://bugzilla.gnome.org/show_bug.cgi?id=690346
2012-12-17 08:54:12 -05:00
Dan Winship
211ed1775d gsocket: add getsockopt/setsockopt wrappers
Add g_socket_get_option() and g_socket_set_option(), wrapping
getsockopt/setsockopt for the case of integer-valued options. Update
code to use these instead of the underlying calls.

https://bugzilla.gnome.org/show_bug.cgi?id=623187
2012-12-12 15:20:22 +01:00
Dan Winship
b377e69685 Add gnetworking.h
Install a public "gnetworking.h" header that can be used to include
the relevant OS-dependent networking headers. This does not really
abstract away unix-vs-windows however; error codes, in particular,
are incompatible.

gnetworkingprivate.h now contains just a few internal URI-related
functions

Also add a g_networking_init() function to gnetworking.h, which can be
used to explicitly initialize OS-level networking, rather than having
that happen as a side-effect of registering GInetAddress.

https://bugzilla.gnome.org/show_bug.cgi?id=623187
2012-12-12 15:20:22 +01:00
Arnel A. Borja
4a506290a7 win32: Use AC_CHECK_TOOL to find dlltool
https://bugzilla.gnome.org/show_bug.cgi?id=684145
2012-12-02 18:12:57 +01:00
Ryan Lortie
37f369a41e stop using libgthread internally
The gobject tools (glib-genmarshal and gobject-query) were linking
against libgthread.  Stop that.

Also, remove the gthread_INCLUDES internal automake substitution.
2012-11-25 14:51:04 -05:00
Krzesimir Nowak
276cf6ceee configure: Make GNUC visibility attribute test more reliable.
Using "int main (int argc, char** argv)" in this test causes GCC to
issue two warnings about unused variable if CFLAGS envvar has
-Wunused-parameter (or just -Wextra). Those warnings are not related
to the attribute checking but they can make the test fail anyway.
2012-11-22 17:33:04 +01:00
Chun-wei Fan
76cecf061b Add autotools scripts to create VS2012 projects
As the project file format for Visual Studio 2012 is only slightly
different from Visual Studio 2010 projects, we can provide support for
building GLib (and other projects) with Visual Studio 2012 with relatively
little effort.  This might change when we eventually get GLib to work with
the Windows 8 (Modern UI/formerly Metro) APIs, but this will suffice for
the time being for people needing to build GLib with Visual Studio 2012.

Basically all that needs to be done at 'make dist' is:
-Copy the .sln/.props/README.txt/.vcxproj files and replace the VS2010
 stuff with VS2012 stuff
-Copy the .vcxproj.filters as is
2012-11-22 08:56:51 +08:00
Olivier Blin
5900d60d06 configure: add missing square bracket in AS_IF for memmove
This has been broken in commit 54e31ab4f1
It seems to be the only hunk that was incorrectly converted.

https://bugzilla.gnome.org/show_bug.cgi?id=688377
2012-11-21 17:56:12 -05:00
Ryan Lortie
cdc95d31e6 *bump* 2012-11-19 18:20:41 -05:00
Dan Winship
731b469908 win32: define _WIN32_WINNT globally
Rather than defining _WIN32_WINNT only in a handful of files, define
it in config.h, like we do with _GNU_SOURCE.

(Also remove a "#define WIN32_LEAN_AND_MEAN" that isn't really all
that useful.)

https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:05 -05:00
Michael Natterer
49db979922 Revert "gmain: Add private API to create Unix child watch that uses waitid()"
This reverts commit 93bf37ce15.
2012-11-15 15:33:38 +01:00
Antoine Jacoutot
a335fd1de8 GFileMonitor: Add kqueue(3) support to GIO
Written by Dmitry Matveev as part of GSoC 2011:
http://netbsd-soc.sourceforge.net/projects/kqueue4gio/

This brings native file monitoring support on systems supporting kqueue(3)
(all BSDs) and remove the need to rely on the unmaintained gamin software.
The backend adds GKqueueDirectoryMonitor and GKqueueFileMonitor.

Some parts rewritten by myself (to prevent needing a configuration file).
Helpful inputs from Colin Walters and Simon McVittie.

https://bugzilla.gnome.org/show_bug.cgi?id=679793
2012-11-15 08:13:30 +01:00
Colin Walters
93bf37ce15 gmain: Add private API to create Unix child watch that uses waitid()
This avoids collecting the zombie child, which means that the PID
can't be reused.  This prevents possible race conditions that might
occur were one to send e.g. SIGTERM to a child.

This race condition has always existed due to the way we called
waitpid() for the app, but the window was widened when we moved the
waitpid() calls into a separate thread.

If waitid() isn't available, we return NULL, and consumers of this
private API (namely, GSubprocess) will need to handle that.

https://bugzilla.gnome.org/show_bug.cgi?id=672102
2012-11-14 14:11:57 -05:00
Ryan Lortie
77032ea390 belated version bump 2012-11-06 07:41:13 -05:00
Colin Walters
28b30caecb configure: Enable set of standard -Werror=foo flags
We're not going to depend on gnome-common (I assume) so this patch
nicks the systemd macro to test for compiler flags, and uses it to set
a similar set of -Werror=foo as the gnome-common one does.

See https://bugzilla.gnome.org/show_bug.cgi?id=608953
See https://mail.gnome.org/archives/desktop-devel-list/2012-July/msg00100.html

If we're going to be setting more strict compiler flags for GNOME, we
should really ensure GLib builds with them first, as it's kind of the
model citizen.

In particular, you can see several times that downstreams such as
Debian have come in and fixed -Wformat-security bugs.  We should never
let those get into tarballs, or even commits.

https://bugzilla.gnome.org/show_bug.cgi?id=687385
2012-11-02 09:03:52 -04:00
Ryan Lortie
7d17fd6f61 Release GLib 2.35.1 2012-10-22 22:20:47 +02:00
Christian Persch
47bc95c0db build: Post branch version bump 2012-10-03 13:58:19 +02:00
Matthias Clasen
9fa86cf217 Bump version 2012-09-23 22:39:20 -04:00
Matthias Clasen
b470097b8b 2.34.0 2012-09-23 22:34:05 -04:00
Ryan Lortie
2cffb96088 bump version 2012-09-18 08:38:04 -04:00
Ryan Lortie
a47761a36e GLib 2.33.14 2012-09-17 17:53:58 -04:00
Colin Walters
d6cbb29f59 CVE-2012-3524: Hardening for being run in a setuid environment
Some programs attempt to use libglib (or even libgio) when setuid.
For a long time, GTK+ simply aborted if launched in this
configuration, but we never had a real policy for GLib.

I'm not sure whether we should advertise such support.  However, given
that there are real-world programs that do this currently, we can make
them safer with not too much effort.

Better to fix a problem caused by an interaction between two
components in *both* places if possible.

This patch adds a private function g_check_setuid() which is used to
first ensure we don't run an external dbus-launch binary if
DBUS_SESSION_BUS_ADDRESS isn't set.

Second, we also ensure the local VFS is used in this case.  The
gdaemonvfs extension point will end up talking to the session bus
which is typically undesirable in a setuid context.

Implementing g_check_setuid() is interesting - whether or not we're
running in a privilege-escalated path is operating system specific.
Note that GTK+'s code to check euid versus uid worked historically on
Unix, more modern systems have filesystem capabilities and SELinux
domain transitions, neither of which are captured by the uid
comparison.

On Linux/glibc, the way this works is that the kernel sets an
AT_SECURE flag in the ELF auxiliary vector, and glibc looks for it on
startup.  If found, then glibc sets a public-but-undocumented
__libc_enable_secure variable which we can use.  Unfortunately, while
it *previously* worked to check this variable, a combination of newer
binutils and RPM break it:
http://www.openwall.com/lists/owl-dev/2012/08/14/1

So for now on Linux/glibc, we fall back to the historical Unix version
until we get glibc fixed.

On some BSD variants, there is a issetugid() function.  On other Unix
variants, we fall back to what GTK+ has been doing.

Reported-By: Sebastian Krahmer <krahmer@suse.de>
Signed-off-by: Colin Walters <walters@verbum.org>
2012-09-13 18:34:29 -04:00
Matthias Clasen
dad25c4819 Bump version 2012-09-03 16:27:19 -04:00
Matthias Clasen
626abfdc10 2.33.10 2012-09-03 15:14:18 -04:00
Ryan Lortie
221bbd8d76 *bump*
thanks rico :)
2012-08-21 16:32:17 -04:00
Ryan Lortie
ed40bf6715 NEWS, versions, etc. 2012-08-20 18:36:51 -04:00
Javier Jardón
f8a5fc2e2e Revert "Use upstream gettext instead the glib one"
Commited by mistake
This reverts commit e930e3b3aa.
2012-08-15 02:46:16 +09:00
Javier Jardón
e930e3b3aa Use upstream gettext instead the glib one 2012-08-15 01:41:11 +09:00
Colin Walters
ddfcfa66ae build: Switch back to using AS_IF for conditionals
See https://bugzilla.gnome.org/show_bug.cgi?id=674483

https://bugzilla.gnome.org/show_bug.cgi?id=681413
2012-08-08 10:37:39 -04:00
Ryan Lortie
69dd29296e bump version 2012-08-06 16:20:36 -04:00
Ryan Lortie
6b43310ef4 GLib 2.33.8 2012-08-06 15:56:26 -04:00
Matthias Clasen
cc80ae321f Solaris build fix for GIO
Solaris/OpenSolaris/OpenIndiana define FIONREAD in sys/filio.h.
This commit adds a configure check for this header, and includes
it conditionally in gio/gsocket.c.

Patch by Fabian Groffen, bug 675524.
2012-08-06 11:55:59 -04:00
Matthias Clasen
0b8662635d configure.ac: Use AS_HELP_STRING throughout
https://bugzilla.gnome.org/show_bug.cgi?id=680831
2012-08-06 08:52:58 -04:00
Javier Jardón
0f6a092cc5 Make gtk-doc not a hard dependency of GLib
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674314
2012-08-05 22:29:28 +09:00
Matthias Clasen
9f9ab64030 Rework the man page configury
Default to generate man pages if the required tools and
stylesheets are found. Error out if --enable-man is given
but tools or stylesheets are missing.
2012-08-03 23:36:45 -04:00
Matthias Clasen
0e37822e10 Bump version 2012-07-17 14:23:08 -04:00
Matthias Clasen
e97a4c7e5e 2.33.6
https://bugzilla.gnome.org/show_bug.cgi?id=680111
2012-07-17 13:47:26 -04:00
Matthias Clasen
11819933e2 Bump version 2012-07-16 06:01:55 -04:00
Christian Persch
938c28b36b regex: Require PCRE 8.13
Bump the required version for external PCRE to 8.13, to fix the build
with external PCRE.
2012-07-02 18:02:15 +02:00
Ryan Lortie
03f2f3b002 *bump* 2012-06-25 16:55:31 -04:00
Ryan Lortie
a5ed95c9ad GLib 2.33.3 2012-06-25 16:29:53 -04:00
Martin Jansa
9e1d4da14d configure: Add --disable-libelf option
See http://git.openembedded.org/openembedded-core/tree/meta/recipes-core/glib-2.0/glib-2.0/nolibelf.patch?id=1f73485a143f0aa6cd87636f3d36a7d1dfc40a3b

Signed-off-by: Colin Walters <walters@verbum.org>
2012-06-06 21:55:07 -04:00
Daniel Macks
f3ff037bd1 Pass -framework sub-flag without embedded whitespace
The "-framework" linker flag takes a second word as a parameter. If
they are passed separated with whitespace, some flag-handling routines
may not know to keep the two words together as a single unit. Use
-Wl,, to pass multiple words without embedded whitespace.

https://bugzilla.gnome.org/show_bug.cgi?id=566994
2012-06-05 21:26:58 -04:00
Daniel Macks
4690d85607 configure: Require libelf 0.8.12
Older versions don't have the required API.

(Commit message written by Colin Walters <walters@verbum.org>)

https://bugzilla.gnome.org/show_bug.cgi?id=673253
2012-06-05 14:16:27 -04:00
Ryan Lortie
bdf1660e28 GLib 2.33.2 2012-06-04 13:17:47 -04:00
Matthias Clasen
431d3adacd Improve libelf configure check
system libelf is not sufficient for glib (lacks elf_getshdrstrndx and
elf_getshdrnum) so let's make sure we don't define HAVE_LIBELF
2012-05-17 00:41:52 -04:00
Michael Olbrich
a365684bf0 configure.ac: more AS_IF
It looks like JH_CHECK_XML_CATALOG has some prerequisite as well

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>

https://bugzilla.gnome.org/show_bug.cgi?id=674483
2012-05-07 17:18:06 -04:00
Colin Walters
54e31ab4f1 configure: Use AS_IF almost everywhere
Not doing so is an evil trap, sadly.  This patch has been
compile-checked on Fedora 16, and I've verified that the generated
config.status and config.h is exactly the same.

https://bugzilla.gnome.org/show_bug.cgi?id=674483
2012-05-07 17:18:04 -04:00
Michael Olbrich
e30823d93f configure.ac: use AS_IF
This way any prerequisites for e.g. AC_CHECK_HEADER are always executed
before the 'if'.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>

https://bugzilla.gnome.org/show_bug.cgi?id=674483
2012-05-07 17:18:03 -04:00
Michael Biebl
8db824e00b configure: Reset LIBS after ELF check
If action-if-found is not specified, AC_CHECK_LIB will append the library
to LIBS. As we don't want to link everything against libelf, reset LIBS
after doing the checks.
2012-05-01 19:57:44 +02:00
Michael Olbrich
56bcba11dd make sure configure fails if AC_CHECK_ALIGNOF cannot detect the alignment
When cross-compiling with gcc >= 4.5 AC_CHECK_ALIGNOF fails to detect the
correct alignment. Without a previous AC_CHECK_TYPE for the same type, the
alignment is silently set to '0'.
This makes sure that configure fails and reports the problem.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>

https://bugzilla.gnome.org/show_bug.cgi?id=674483
2012-04-25 09:36:29 -04:00
Matthias Clasen
bf8a4ed099 Bump version to 2.33.1
This avoids triggering the 'too new' warning from 2.34 API.
2012-04-19 17:14:25 -04:00
Alexander Larsson
21e049b253 Tests: Move dbus specific tests to if HAVE_DBUS_DAEMON
These used to only be built on unix, but if you have dbus-daemon on
win32 we should really build them there too.
2012-04-19 18:19:10 +02:00
Alexandre Rostovtsev
b3f814883f Do not detect GNUstep as Cocoa
GNUstep also installs Foundation/Foundation.h

https://bugzilla.gnome.org/show_bug.cgi?id=674172

Signed-off-by: William Hua <william@attente.ca>
2012-04-18 00:00:29 -04:00
William Hua
a147004b83 Use Cocoa header for Cocoa test instead of Foundation. 2012-04-17 23:49:47 -04:00
Rafał Mużyło
6d19f11c89 configure: Fix typo in ELF check
Signed-off-by: Colin Walters <walters@verbum.org>
2012-04-15 11:17:28 -04:00
Colin Walters
4b98c512df build: When cross compiling, don't require host binaries if tests are not enabled
These binaries are now only used by the test suite.  glib-genmarshal
*used* to be required to generate marshallers, but isn't anymore now
that we use libffi (via g_cclosure_marshal_generic).

https://bugzilla.gnome.org/show_bug.cgi?id=667806
2012-04-15 11:15:54 -04:00
Colin Walters
f084b60377 build: Add --disable-modular-tests build option
This patch solves two problems:

First, it allows builders to optionally cut the circular dependency
between dbus and glib by disabling the modular tests (just like how
the tests can be disabled in dbus).

Second, the tests are entirely pointless to build if cross-compiling.

It also moves us slightly closer to the long term future we want where
the tests are a separate ./configure invocation and run against the
INSTALLED glib, not the one in the source tree. This would allow us to
run the tests constantly, not just when glib is built.

https://bugzilla.gnome.org/show_bug.cgi?id=667806
2012-04-15 11:15:54 -04:00
Matthias Clasen
55bbb9fc69 Bump version 2012-04-13 19:54:42 -04:00
William Hua
69d929e67f Be more precise about Carbon v. Cocoa. 2012-04-11 23:25:09 -04:00
Rodrigo Moya
9aa19e1d96 Use 'if test' for checking auto* variables' values 2012-04-04 11:55:40 +02:00
Rodrigo Moya
118c42e747 Always include G_SOCKET_FAMILY_UNIX value in GSocketFamily
This is needed because glib-mkenums doesn't handle #ifdef values in
enums, and so it needs to have all values always defined in the enum.
When not available, define the missing values to a negative value.
2012-04-04 11:39:03 +02:00
Matthias Clasen
27d95bd81f Rework the libelf configure checks one more time
It seems that there is quite a bit of variation out there, in
terms of libelf versions and API. Make the checks more thorough,
by not only checking for elf_begin, but also some of the shdr function
that we need. Also, explicitly check for libelf.h.

This should address bug 673132 and 673253.
2012-04-02 09:09:11 -04:00
Antoine Jacoutot
1494544958 gresource: libelf, try pkg-config first then fall-back to AC_CHECK_LIB
On some systems gelf.h may not be stored under the top level include
directory in which case we need to add the correct include paths in
cflags by using pkg-config(1).
2012-03-31 20:22:51 +02:00
Kalev Lember
8f8fc83670 configure: Fix alignment tests when cross compiling
When inserting custom code to AC_CHECK_ALIGNOF, make sure to not replace
the default includes, but instead append to them.

This fixes ALIGNOF_GUINT32 and ALIGNOF_GUINT64 that were both 0 when cross
compiling. The third 'unsigned long' test wasn't affected because the
AC_CHECK_ALIGNOF call didn't specify the optional 2nd parameter.
2012-03-28 12:42:49 +03:00
Matthias Clasen
d793287b3a Bump version 2012-03-24 11:31:01 -04:00
Matthias Clasen
816554c62b 2.32.0 2012-03-24 11:28:35 -04:00
Matthias Clasen
617c0cb6a0 bump version 2012-03-19 16:59:54 -04:00
Matthias Clasen
166595c4d5 2.31.22 2012-03-19 14:27:20 -04:00
Colin Walters
6833385c5a gmain: Use sig_atomic_t for list of pending Unix signals
Pointed out by: Simon McVittie <simon.mcvittie@collabora.co.uk>

https://bugzilla.gnome.org/show_bug.cgi?id=671997
2012-03-16 16:15:16 -04:00
Alexander Larsson
8ae5bd399e Remove now unused qsort_r checks
https://bugzilla.gnome.org/show_bug.cgi?id=672095
2012-03-16 16:04:36 +01:00
Alexander Larsson
839957f275 Make g_qsort_with_data stable, based on glibc msort
We need a stable sort, and we might as well always use it rather
than have multiple sort versions. This picks up the glibc
merge sort implementation which it uses by default for qsort,
except we don't fall back to non-stable quicksort in some cases
like glibc

https://bugzilla.gnome.org/show_bug.cgi?id=672095
2012-03-16 16:04:36 +01:00
Matthias Clasen
b6f65ec940 bump version 2012-03-05 11:44:16 -05:00
Matthias Clasen
a970fddb0e 2.31.20 2012-03-05 09:01:20 -05:00
Peter O'Gorman
59ee6dbc00 Bug 640202 Impossible to build multi-architecture libraries
Hides ELF-only linker flag -export-dynamic from non-ELF linkers.
2012-03-02 13:36:27 -08:00
Emmanuele Bassi
34aeeb7d64 Add flexible API version boundaries
There are cases when it should be possible to define at compile time
what range of functions and types should be used, in order to get,
or restrict, the compiler warnings for deprecated or newly added
types or functions.

For instance, if GLib introduces a deprecation warning on a type in
version 2.32, application code can decide to specify the minimum and
maximum boundary of the used API to be 2.30; when compiling against
a new version of GLib, this would produce the following results:

  - all deprecations introduced prior to 2.32 would emit compiler
    warnings when used by the application code;
  - all deprecations introduced in 2.32 would not emit compiler
    warnings when used by the application code;
  - all new symbols introduced in 2.32 would emit a compiler warning.

Using this scheme it should be possible to have fairly complex
situations, like the following one:

  assuming that an application is compiled with:
    GLIB_VERSION_MIN_REQUIRED = GLIB_VERSION_2_30
    GLIB_VERSION_MAX_ALLOWED  = GLIB_VERSION_2_32

  and a GLib header containing:

    void function_A (void) GLIB_DEPRECATED_IN_2_26;
    void function_B (void) GLIB_DEPRECATED_IN_2_28;
    void function_C (void) GLIB_DEPRECATED_IN_2_30;
    void function_D (void) GLIB_AVAILABLE_IN_2_32;
    void function_E (void) GLIB_AVAILABLE_IN_2_34;

  any application code using the above functions will get the following
  compiler warnings:

    function_A: deprecated symbol warning
    function_B: deprecated symbol warning
    function_C: no warning
    function_D: no warning
    function_E: undefined symbol warning

This means that it should be possible to gradually port code towards
non-deprecated API gradually, on a per-release basis.

https://bugzilla.gnome.org/show_bug.cgi?id=670542
2012-02-26 23:58:41 -05:00
Christian Persch
d70634526d regex: Remove --disable-regex option
https://bugzilla.gnome.org/show_bug.cgi?id=622149
2012-02-26 22:22:56 -05:00
Rico Tzschichholz
9e5ff3d3eb Bump version 2012-02-21 14:19:37 +01:00
Matthias Clasen
823f553e36 2.31.18 2012-02-21 00:26:48 +01:00
Matthias Clasen
26a5af83d4 Back to odd 2012-02-04 22:54:58 -05:00
Matthias Clasen
d6a4369089 2.31.16 2012-02-04 18:43:13 -05:00
Matthias Clasen
8ab7ed8ffc Bump version number 2012-01-30 18:47:31 -05:00
Matthias Clasen
d332bdcc58 2.31.14 2012-01-30 18:46:18 -05:00
Enrique Ocaña González
aa95853f9c Honor the glib_cv_g_atomic_lock_free env var in configure
This fixes bug: https://bugzilla.gnome.org/show_bug.cgi?id=668572
2012-01-24 23:40:33 -05:00
Matthias Clasen
716cf35585 Add a resource tool
This lets you poke at resources in elf files and
standalone resource bundles. So far, only listing
and extracting resources is supported. The support
for elf files requires libelf.
2012-01-23 00:24:34 -05:00
Dan Winship
b6a8dec558 g_date_time_format: fix output in non-UTF-8 locales
In non-UTF-8 locales, the translations and nl_langinfo() return values
must be converted to UTF-8 before being returned to the caller.
Likewise, when making a recursive call to expand a format like '%x',
the format string must first be converted to UTF-8.

https://bugzilla.gnome.org/show_bug.cgi?id=668250
2012-01-20 19:50:48 -05:00
Matthias Clasen
9fa374ccf7 bump rev 2012-01-20 15:42:44 -05:00
Matthias Clasen
e4642d58ad 2.31.12 2012-01-20 15:10:29 -05:00
Dan Winship
da9d98728d Fix glib-compile-resources usage when cross-compiling
Copy the behavior of glib-genmarshal: require an installed copy of it,
and use that rather than the built copy.
2012-01-18 12:07:11 -05:00
Dan Winship
08036ce303 gsocket: make this compile on Windows again
https://bugzilla.gnome.org/show_bug.cgi?id=668071
2012-01-17 19:46:57 -05:00
Matthias Clasen
8390f3bf7e Back to the odd 2012-01-16 14:46:26 -05:00
Matthias Clasen
639c5867c7 2.31.10 2012-01-16 14:00:45 -05:00
Sebastian Dröge
97f25892ea GSocket: Add possibility to join a multicast group only on a specific interface 2012-01-16 18:41:40 +01:00
Patrick Welche
decac50c15 Protect call to pthread_condattr_setclock with define.
While here update pthread_attr_setstacksize test to use AC_LINK_IFELSE
and avoid an unused variable in glib/tests/thread.c.

https://bugzilla.gnome.org/show_bug.cgi?id=667790
2012-01-15 23:41:27 -05:00
Matthias Clasen
5377c0de01 Beef up Libs.private in glib-2.0.pc
This should help getting static builds working on mingw.
Based on a patch by Volker Grabsch, bug 619126.

At the same time, drop the unnecessary GLIB_RT_LIBS variable;
we are already adding -lrt to G_THREAD_LIBS.
2012-01-15 22:15:10 -05:00
Matthias Clasen
f8843a0feb Back to odd 2012-01-10 00:40:14 -05:00
Matthias Clasen
4a016d82f1 2.31.8 2012-01-10 00:39:20 -05:00
Matthias Clasen
643ad9f6c3 Remove another unused AC_DEFINE
Nothing was using the HAVE_GCOV define.
2011-12-27 17:45:40 -05:00
Matthias Clasen
7cc9e10cce Drop unused AC_SUBST
DISABLE_MEM_POOLS is only used as define.
2011-12-27 17:20:36 -05:00
Matthias Clasen
bc85e6ed51 Remove a bashism 2011-12-27 17:15:44 -05:00
Matthias Clasen
a176008826 Drop a lot of dead configury for threads
Much of this became obsolete by the recent rewrite of our
threading support.
2011-12-27 17:12:39 -05:00
Matthias Clasen
8cea99741b Don't put documentation in glibconfig.h 2011-12-27 16:22:13 -05:00
Matthias Clasen
31f0ad3f35 Make glibconfig.h include guards consistent 2011-12-27 16:18:19 -05:00
Matthias Clasen
d09800d86e Remove a commented-out macro 2011-12-27 16:16:24 -05:00
Matthias Clasen
4576a459fc Remove obsolescent AC_HEADER_STDC macro
We only used the resulting define in one place, and really,
these headers just have to be around or its not worth trying.
2011-12-27 15:55:04 -05:00
Ryan Lortie
f3cf8c0ca8 *bump* 2011-12-19 15:24:52 -05:00
Ryan Lortie
fbe1fb8e49 glib 2.31.6 2011-12-19 13:38:21 -05:00
Dan Winship
84df41c02c configure.ac: robustify netlink.h check
https://bugzilla.gnome.org/show_bug.cgi?id=666173
2011-12-15 09:39:06 -05:00
Ryan Lortie
b79d1f8619 bump version 2011-12-13 09:16:51 -05:00
Ryan Lortie
2f9ab64ac9 glib 2.31.4 2011-12-12 13:36:40 -05:00
Matthias Clasen
6bb8fdaa5f Make the qsort_r check cross-compile friendly
Pointed out by Daniel Mack.

https://bugzilla.gnome.org/show_bug.cgi?id=665607
2011-12-06 07:44:55 -05:00
Ryan Lortie
b2cb386b78 post-release bump 2011-11-21 15:21:23 -05:00
Ryan Lortie
36c21d4790 release glib 2.31.2 2011-11-21 14:23:17 -05:00
Christian Persch
eaaf18960f Fix the fix for G*_TO_POINTER casts on 32 bits
The 'fix' from commit 16292dd753 broke the
build on 32 bit because it was missing the parentheses around "gint" / "guint"
in glib_gp[u]i_cast.

https://bugzilla.gnome.org/show_bug.cgi?id=661546
2011-11-17 14:24:09 +01:00
Benjamin Otte
8863071b9d localfileenumerator: Take the type from the readdir() call
That way, we can avoid stat() calls for all enumerated files in various
cases. In particular in the autocompletion code in the GTK filechooser.
2011-11-16 17:22:03 +01:00
Lucas De Marchi
16292dd753 Fix G*_TO_POINTER casts on 32 bits
If we don't do the cast to the proper size in 32 bits, things like below
doesn't work:

uint8_t u = 20;
void *p;

p = GUINT_TO_POINTER(u);

Signed-off-by: Colin Walters <walters@verbum.org>

https://bugzilla.gnome.org/show_bug.cgi?id=661546
2011-11-16 10:47:21 -05:00
Alexander Larsson
8d023c2706 win32: Use timeGetTime as monotonic base
This allows apps that need it to increase timer accuracy
using timeBeginPeriod
2011-11-16 09:10:46 +01:00
Matthias Clasen
375015018b Switch to using template-free docs build
All docs are finally inline, so we can do this switch.
2011-11-14 21:22:46 -05:00
Dan Winship
fe5ba0f291 add GNetworkMonitor, for... monitoring the network
Add GNetworkMonitor and its associated extension point, provide a base
implementation that always claims the network is available, and a
netlink-based implementation built on top of that that actually tracks
the network state.

https://bugzilla.gnome.org/show_bug.cgi?id=620932
2011-11-14 13:42:30 -05:00
Kristian Rietveld
f218353e04 Need to include xlocale.h on Darwin for strtod_l
This fixes the build of gstrfuncs.c on Darwin.
2011-11-09 08:32:33 +01:00
Robert Nagy
ba7bf09285 Fix some build issues on OpenBSD
Adapt to some OpenBSD header quirks.
Patch by Robert Nagy.

https://bugzilla.gnome.org/show_bug.cgi?id=661386
2011-10-24 21:20:14 -04:00
Ryan Lortie
3fd412549f configure.ac: join the cargo-cult of _cv_
For some reason, the setting of g_atomic_lock_free wasn't making it down
to the lower part of the configure script where glibconfig.h was being
generated when building using mingw32-configure.

If we prefix glib_cv_ to the start of the variable name (like everyone
else is doing) then it magically starts working.

I love you, automake.
2011-10-19 10:11:54 -04:00
Ryan Lortie
aba0f0c38b gatomic: introduce G_ATOMIC_LOCK_FREE
We clean up the detection of if we should do 'real' atomic operations or
mutex-emulated ones with the introduction of a new (public) macro:
G_ATOMIC_LOCK_FREE.  If defined, our atomic operations are guaranteed to
be done in hardware.

We need to use __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 to determine if our
compiler supports GCC-style atomic operations from the gatomic.h header
because we might be building a program against GLib using a different
set of compiler options (or a different compiler) than was used to build
GLib itself.

Unfortunately, this macro is not available on clang, so it has currently
regressed to using the mutex emulation.  A bug about that has been
opened here:

  http://llvm.org/bugs/show_bug.cgi?id=11174
2011-10-18 16:45:28 -04:00
Ryan Lortie
e5fd0f5df6 Revert "Bug 652827 - glib-2.29.8 no longer builds with mingw.org's toolchain"
This reverts commit 3492122112.
2011-10-17 10:55:02 -04:00
Ryan Lortie
306aa62ea5 drop -uninstalled.pc files
These were meant to provide the ability to use GLib directly out of its
build tree but have a couple of rather serious limitations that prevent
their serious use:

 - these files only worked with programs built using libtool

 - for non-trivial uses, other environment variables will need to be
   setup to allow GLib to function properly

 - the system doesn't stack well when attempting to use multiple
   libraries all uninstalled

The jhbuild --prefix= style system works much better in every way, so we
remove this old hack.
2011-10-16 19:14:18 -04:00
Ryan Lortie
a9a1c97904 gthread: move test cases to glib/ 2011-10-16 19:08:59 -04:00
Ryan Lortie
a5800ef336 Finish killing off GSystemThread 2011-10-12 23:04:15 -04:00
Dan Winship
71cf70b39c Simplify checks for CLOCK_MONOTONIC
Remove the complicated configure-time and runtime checks, and just use
CLOCK_MONOTONIC if it's defined.

https://bugzilla.gnome.org/show_bug.cgi?id=661421
2011-10-12 08:59:35 -04:00
Matthias Clasen
7455dd370e Make single includes mandatory
This has been the official line since 2.17, which seems plenty
long enough for a transition phase.
2011-10-12 00:25:38 -04:00
Matthias Clasen
0e3f530185 Remove cruft from g_strerror and g_strsignal
We can just assume that strerror/strsignal are available
nowadays. At the same time, drop use of thread-private storage.
Instead, always return interned strings.

https://bugzilla.gnome.org/show_bug.cgi?id=660849
2011-10-05 01:12:53 -04:00
Matthias Clasen
ddbd4acdfb Need to check for prlimit 2011-10-05 01:04:02 -04:00
Matthias Clasen
1909d2398a Make thread names useful in a debugger
Associate the name with the system thread, so that debuggers
can see it. This is currently only implemented for Linux, using
prctl.

https://bugzilla.gnome.org/show_bug.cgi?id=660635
2011-10-02 22:11:58 -04:00
Matthias Clasen
e6c76d9fd4 Clean up atomic cruft
Nothing is using these defines anymore, and the messages
are misleading. Based on a patch by Kean Johnston.

https://bugzilla.gnome.org/show_bug.cgi?id=660013
2011-09-29 23:20:09 -04:00