summaryrefslogtreecommitdiff
path: root/src/xine-utils/attributes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-utils/attributes.h')
-rw-r--r--src/xine-utils/attributes.h42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/xine-utils/attributes.h b/src/xine-utils/attributes.h
index b533286c8..a9be4792f 100644
--- a/src/xine-utils/attributes.h
+++ b/src/xine-utils/attributes.h
@@ -1,8 +1,10 @@
/*
* attributes.h
* Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
+ * Copyright (C) 2001-2007 xine developers
*
- * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
+ * This file was originally part of mpeg2dec, a free MPEG-2 video stream
+ * decoder.
*
* mpeg2dec is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -30,40 +32,28 @@
#define ATTR_ALIGN(align)
#endif
-/* disable GNU __attribute__ extension, when not compiling with GNU C */
-#if defined(__GNUC__) || defined (__ICC)
-#ifndef ATTRIBUTE_PACKED
-#define ATTRIBUTE_PACKED 1
-#endif
-#else
-#undef ATTRIBUTE_PACKED
-#ifndef __attribute__
-#define __attribute__(x) /**/
-#endif /* __attribute __*/
-#endif
-
#ifdef XINE_COMPILE
-# include "config.h"
+# include "configure.h"
#endif
/* Export protected only for libxine functions */
#if defined(XINE_LIBRARY_COMPILE) && defined(SUPPORT_ATTRIBUTE_VISIBILITY_PROTECTED)
-# define XINE_PROTECTED __attribute__((visibility("protected")))
+# define XINE_PROTECTED __attribute__((__visibility__("protected")))
#elif defined(XINE_LIBRARY_COMPILE) && defined(SUPPORT_ATTRIBUTE_VISIBILITY_DEFAULT)
-# define XINE_PROTECTED __attribute__((visibility("default")))
+# define XINE_PROTECTED __attribute__((__visibility__("default")))
#else
# define XINE_PROTECTED
#endif
#ifdef SUPPORT_ATTRIBUTE_SENTINEL
-# define XINE_SENTINEL __attribute__((sentinel))
+# define XINE_SENTINEL __attribute__((__sentinel__))
#else
# define XINE_SENTINEL
#endif
#ifndef __attr_unused
# ifdef SUPPORT_ATTRIBUTE_UNUSED
-# define __attr_unused __attribute__((unused))
+# define __attr_unused __attribute__((__unused__))
# else
# define __attr_unused
# endif
@@ -71,14 +61,26 @@
/* Format attributes */
#ifdef SUPPORT_ATTRIBUTE_FORMAT
-# define XINE_FORMAT_PRINTF(fmt,var) __attribute__((format(printf, fmt, var)))
+# define XINE_FORMAT_PRINTF(fmt,var) __attribute__((__format__(__printf__, fmt, var)))
#else
# define XINE_FORMAT_PRINTF(fmt,var)
#endif
#ifdef SUPPORT_ATTRIBUTE_FORMAT_ARG
-# define XINE_FORMAT_PRINTF_ARG(fmt) __attribute__((format_arg(fmt)))
+# define XINE_FORMAT_PRINTF_ARG(fmt) __attribute__((__format_arg__(fmt)))
#else
# define XINE_FORMAT_PRINTF_ARG(fmt)
#endif
+#ifdef SUPPORT_ATTRIBUTE_PACKED
+# define XINE_PACKED __attribute__((packed))
+#else
+# define XINE_PACKED
+#endif
+
+#ifdef SUPPORT_ATTRIBUTE_MALLOC
+# define XINE_MALLOC __attribute__((__malloc__))
+#else
+# define XINE_MALLOC
+#endif
+
#endif /* ATTRIBUTE_H_ */