As pointed out here: https://cygwin.com/ml/cygwin/2014-07/msg00371.html
any use of __attribute__ in a header that can be included by a user should be namespace-safe, by decorating the attribute arguments with __ (while gcc does a lousy job at documenting it, ALL attributes have a __ counterpart, precisely so that public headers can use attributes without risk of collision with macros belonging to user namespace). 2014-07-31 Eric Blake <ebl...@redhat.com> * include/pthread.h: Decorate attribute names with __, for namespace safety. * include/cygwin/core_dump.h: Likewise. * include/cygwin/cygwin_dll.h: Likewise. * include/sys/cygwin.h: Likewise. * include/sys/strace.h: Likewise. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Index: include/pthread.h =================================================================== RCS file: /cvs/src/src/winsup/cygwin/include/pthread.h,v retrieving revision 1.41 diff -u -p -r1.41 pthread.h --- include/pthread.h 16 Jul 2014 10:21:18 -0000 1.41 +++ include/pthread.h 31 Jul 2014 16:04:05 -0000 @@ -76,7 +76,7 @@ int pthread_attr_getschedpolicy (const p int pthread_attr_getscope (const pthread_attr_t *, int *); int pthread_attr_getstack (const pthread_attr_t *, void **, size_t *); int pthread_attr_getstackaddr (const pthread_attr_t *, void **) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); int pthread_attr_init (pthread_attr_t *); int pthread_attr_setdetachstate (pthread_attr_t *, int); int pthread_attr_setguardsize (pthread_attr_t *, size_t); @@ -88,7 +88,7 @@ int pthread_attr_setscope (pthread_attr_ #ifdef _POSIX_THREAD_ATTR_STACKADDR int pthread_attr_setstack (pthread_attr_t *, void *, size_t); int pthread_attr_setstackaddr (pthread_attr_t *, void *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); #endif #ifdef _POSIX_THREAD_ATTR_STACKSIZE @@ -137,7 +137,7 @@ int pthread_create (pthread_t *, const p void *(*)(void *), void *); int pthread_detach (pthread_t); int pthread_equal (pthread_t, pthread_t); -void pthread_exit (void *) __attribute__ ((noreturn)); +void pthread_exit (void *) __attribute__ ((__noreturn__)); int pthread_getcpuclockid (pthread_t, clockid_t *); int pthread_getschedparam (pthread_t, int *, struct sched_param *); void *pthread_getspecific (pthread_key_t); Index: include/cygwin/core_dump.h =================================================================== RCS file: /cvs/src/src/winsup/cygwin/include/cygwin/core_dump.h,v retrieving revision 1.2 diff -u -p -r1.2 core_dump.h --- include/cygwin/core_dump.h 11 Sep 2001 20:01:01 -0000 1.2 +++ include/cygwin/core_dump.h 31 Jul 2014 16:04:05 -0000 @@ -1,6 +1,6 @@ /* core_dump.h - Copyright 1999, 2000, 2001 Red Hat, Inc. + Copyright 1999, 2000, 2001, 2014 Red Hat, Inc. Written by Egor Duda <d...@logos-m.ru> @@ -27,7 +27,7 @@ struct win32_core_process_info char command_line[1]; } #ifdef __GNUC__ - __attribute__ ((packed)) + __attribute__ ((__packed__)) #endif ; @@ -38,7 +38,7 @@ struct win32_core_thread_info CONTEXT thread_context; } #ifdef __GNUC__ - __attribute__ ((packed)) + __attribute__ ((__packed__)) #endif ; @@ -49,7 +49,7 @@ struct win32_core_module_info char module_name[1]; } #ifdef __GNUC__ - __attribute__ ((packed)) + __attribute__ ((__packed__)) #endif ; @@ -64,7 +64,7 @@ struct win32_pstatus } data ; } #ifdef __GNUC__ - __attribute__ ((packed)) + __attribute__ ((__packed__)) #endif ; Index: include/cygwin/cygwin_dll.h =================================================================== RCS file: /cvs/src/src/winsup/cygwin/include/cygwin/cygwin_dll.h,v retrieving revision 1.12 diff -u -p -r1.12 cygwin_dll.h --- include/cygwin/cygwin_dll.h 23 Apr 2013 09:44:35 -0000 1.12 +++ include/cygwin/cygwin_dll.h 31 Jul 2014 16:04:05 -0000 @@ -1,6 +1,6 @@ /* cygwin_dll.h - Copyright 1998, 1999, 2000, 2001, 2009, 2011, 2012, 2013 Red Hat, Inc. + Copyright 1998, 1999, 2000, 2001, 2009, 2011, 2012, 2013, 2014 Red Hat, Inc. This file is part of Cygwin. @@ -35,9 +35,9 @@ static DWORD storedReason; \ static void* storedPtr; \ int __dynamically_loaded; \ \ -static int __dllMain (int a __attribute__ ((unused)), \ - char **b __attribute__ ((unused)), \ - char **c __attribute__ ((unused))) \ +static int __dllMain (int a __attribute__ ((__unused__)), \ + char **b __attribute__ ((__unused__)), \ + char **c __attribute__ ((__unused__))) \ { \ return Entry (storedHandle, storedReason, storedPtr); \ } \ Index: include/sys/cygwin.h =================================================================== RCS file: /cvs/src/src/winsup/cygwin/include/sys/cygwin.h,v retrieving revision 1.108 diff -u -p -r1.108 cygwin.h --- include/sys/cygwin.h 15 May 2014 11:16:28 -0000 1.108 +++ include/sys/cygwin.h 31 Jul 2014 16:04:05 -0000 @@ -26,21 +26,21 @@ extern "C" { /* DEPRECATED INTERFACES. These are restricted to MAX_PATH length. Don't use in modern applications. They don't exist on x86_64. */ extern int cygwin_win32_to_posix_path_list (const char *, char *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); extern int cygwin_win32_to_posix_path_list_buf_size (const char *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); extern int cygwin_posix_to_win32_path_list (const char *, char *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); extern int cygwin_posix_to_win32_path_list_buf_size (const char *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); extern int cygwin_conv_to_win32_path (const char *, char *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); extern int cygwin_conv_to_full_win32_path (const char *, char *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); extern int cygwin_conv_to_posix_path (const char *, char *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); extern int cygwin_conv_to_full_posix_path (const char *, char *) - __attribute__ ((deprecated)); + __attribute__ ((__deprecated__)); #endif /* !__x86_64__ */ /* Use these interfaces in favor of the above. */ Index: include/sys/strace.h =================================================================== RCS file: /cvs/src/src/winsup/cygwin/include/sys/strace.h,v retrieving revision 1.33 diff -u -p -r1.33 strace.h --- include/sys/strace.h 23 Apr 2013 09:44:35 -0000 1.33 +++ include/sys/strace.h 31 Jul 2014 16:04:05 -0000 @@ -1,7 +1,7 @@ /* sys/strace.h Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, - 2010, 2011, 2012 Red Hat, Inc. + 2010, 2011, 2012, 2014 Red Hat, Inc. This file is part of Cygwin. @@ -40,17 +40,17 @@ class strace void write (unsigned category, const char *buf, int count); unsigned char _active; public: - void activate (bool) __attribute__ ((regparm (2)));; + void activate (bool) __attribute__ ((__regparm__ (2)));; strace () {} int microseconds (); int version; int lmicrosec; bool execing; - void dll_info () __attribute__ ((regparm (1))); - void prntf (unsigned, const char *func, const char *, ...) /*__attribute__ ((regparm(3)))*/; - void vprntf (unsigned, const char *func, const char *, va_list ap) /*__attribute__ ((regparm(3)))*/; - void wm (int message, int word, int lon) __attribute__ ((regparm(3))); - void write_childpid (pid_t) __attribute__ ((regparm (3))); + void dll_info () __attribute__ ((__regparm__ (1))); + void prntf (unsigned, const char *func, const char *, ...) /*__attribute__ ((__regparm__(3)))*/; + void vprntf (unsigned, const char *func, const char *, va_list ap) /*__attribute__ ((__regparm__(3)))*/; + void wm (int message, int word, int lon) __attribute__ ((__regparm__(3))); + void write_childpid (pid_t) __attribute__ ((__regparm__ (3))); bool attached () const {return _active == 3;} bool active () const {return _active & 1;} unsigned char& active_val () {return _active;}
signature.asc
Description: OpenPGP digital signature