Compiling anything with GCC <4.6 spews deprecation warnings
A change introduced between 2.58.3 and 2.62.6 has resulted in a raft of warnings when including <glib.h>
from any project compiled with GCC 4.5 or earlier.
I believe the issue is a mismatch in the logic controlling G_GNUC_BEGIN_IGNORE_DEPRECATIONS
and G_GNUC_DEPRECATED
. Compilers that support attribute((__deprecated__))
but not -Wno-deprecated-declarations
are caught in the crossfire.
Test program:
#include <glib.h>
int main() {
}
Output:
$ gcc test-glib.c
In file included from /opt/local/include/glib-2.0/glib/gthread.h:34,
from /opt/local/include/glib-2.0/glib/gasyncqueue.h:32,
from /opt/local/include/glib-2.0/glib.h:32,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/gutils.h:213: warning: 'GVoidFunc' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:32,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/gasyncqueue.h:116: warning: 'GTimeVal' is deprecated
/opt/local/include/glib-2.0/glib/gasyncqueue.h:119: warning: 'GTimeVal' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:43,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/gdate.h:201: warning: 'GTimeVal' is deprecated
/opt/local/include/glib-2.0/glib/gdate.h:204: warning: 'GTime' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:44,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/gdatetime.h:118: warning: 'GTimeVal' is deprecated
/opt/local/include/glib-2.0/glib/gdatetime.h:120: warning: 'GTimeVal' is deprecated
/opt/local/include/glib-2.0/glib/gdatetime.h:246: warning: 'GTimeVal' is deprecated
In file included from /opt/local/include/glib-2.0/glib/giochannel.h:33,
from /opt/local/include/glib-2.0/glib.h:54,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/gmain.h:550: warning: 'GTimeVal' is deprecated
/opt/local/include/glib-2.0/glib/gmain.h:575: warning: 'GTimeVal' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:85,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/gtestutils.h:373: warning: 'GTestTrapFlags' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:88,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/gtimer.h:67: warning: 'GTimeVal' is deprecated
/opt/local/include/glib-2.0/glib/gtimer.h:71: warning: 'GTimeVal' is deprecated
/opt/local/include/glib-2.0/glib/gtimer.h:73: warning: 'GTimeVal' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:90,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/gtrashstack.h:41: warning: 'GTrashStack' is deprecated
/opt/local/include/glib-2.0/glib/gtrashstack.h:45: warning: 'GTrashStack' is deprecated
/opt/local/include/glib-2.0/glib/gtrashstack.h:48: warning: 'GTrashStack' is deprecated
/opt/local/include/glib-2.0/glib/gtrashstack.h:50: warning: 'GTrashStack' is deprecated
/opt/local/include/glib-2.0/glib/gtrashstack.h:52: warning: 'GTrashStack' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:106,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:47: warning: 'GCacheNewFunc' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:48: warning: 'GCacheDestroyFunc' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:49: warning: 'GCacheDupFunc' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:50: warning: 'GCacheDestroyFunc' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:55: warning: 'GCache' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:57: warning: 'GCache' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:60: warning: 'GCache' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:63: warning: 'GCache' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gcache.h:67: warning: 'GCache' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:110,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:52: warning: 'GThreadPriority' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:70: warning: 'GTimeVal' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:81: warning: 'GThreadPriority' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:88: warning: 'GThreadPriority' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:94: warning: 'GThreadFunctions' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:111: warning: 'GThreadPriority' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:116: warning: 'GThreadPriority' is deprecated
In file included from /opt/local/include/glib-2.0/glib.h:110,
from test-glib.c:2:
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:146: warning: 'GStaticMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:148: warning: 'GStaticMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:150: warning: 'GStaticMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:156: warning: 'GStaticMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:172: warning: 'GStaticRecMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:175: warning: 'GStaticRecMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:178: warning: 'GStaticRecMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:181: warning: 'GStaticRecMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:184: warning: 'GStaticRecMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:188: warning: 'GStaticRecMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:191: warning: 'GStaticRecMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:197: warning: 'GStaticMutex' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:209: warning: 'GStaticRWLock' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:212: warning: 'GStaticRWLock' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:215: warning: 'GStaticRWLock' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:218: warning: 'GStaticRWLock' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:221: warning: 'GStaticRWLock' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:224: warning: 'GStaticRWLock' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:227: warning: 'GStaticRWLock' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:230: warning: 'GStaticRWLock' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:244: warning: 'GStaticPrivate' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:247: warning: 'GStaticPrivate' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:250: warning: 'GStaticPrivate' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:255: warning: 'GStaticPrivate' is deprecated
/opt/local/include/glib-2.0/glib/deprecated/gthread.h:283: warning: 'GTimeVal' is deprecated
$ gcc --version
powerpc-apple-darwin8-gcc-apple-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3) (MacPorts apple-gcc42 5666.3_16)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.