Found by:
find -name '*.h' |xargs grep -i 'attribute.*(([a-z]'
For an example of the type of bugs this causes, try compiling this valid
C11 program (it's valid because 'noreturn' is reserved for use in the
user namespace unless you include <stdnoreturn.h>):
$ cat foo.c
#define noreturn __attribute__((noreturn))
#include <stdlib.h>
$ gcc -c -o foo.o -Wall foo.c
In file included from /usr/include/stdlib.h:11:0,
from foo.c:2:
foo.c:1:18: error: expected ')' before '__attribute__'
#define noreturn __attribute__((noreturn))
^
/usr/include/stdlib.h:66:28: error: expected ',' or ';' before ')' token
_VOID _EXFUN(abort,(_VOID) _ATTRIBUTE ((noreturn)));
^
* libc/machine/spu/spu_timer_internal.h: Decorate attribute names
with __, for namespace safety.
* libc/machine/xscale/machine/profile.h: Likewise.
* libc/include/stdlib.h: Likewise.
* libc/include/_ansi.h: Likewise.
* libc/include/sys/unistd.h: Likewise.
* libc/sys/linux/linuxthreads/libc-symbols.h: Likewise.
* libc/sys/linux/linuxthreads/internals.h: Likewise.
* libc/sys/linux/machine/i386/weakalias.h: Likewise.
* libc/sys/linux/machine/i386/dl-procinfo.h: Likewise.
* libc/sys/linux/machine/i386/dl-machine.h: Likewise.
* libc/sys/linux/libc-symbols.h: Likewise.
* libc/sys/linux/iconv/gconv_charset.h: Likewise.
* libc/sys/linux/include/resolv.h: Likewise.
* libc/sys/linux/sys/unistd.h: Likewise.
* libc/sys/linux/dl/atomicity.h: Likewise.
* libc/sys/linux/dl/dynamic-link.h: Likewise.
* libc/sys/linux/dl/ldsodefs.h: Likewise.
|
||
|---|---|---|
| .. | ||
| bits | ||
| machine | ||
| LICENSE | ||
| Makefile.am | ||
| Makefile.in | ||
| aclocal.m4 | ||
| attr.c | ||
| barrier.c | ||
| bp-sym.h | ||
| cancel.c | ||
| condvar.c | ||
| config.h | ||
| configure | ||
| configure.in | ||
| defs.awk | ||
| ecmutex.c | ||
| events.c | ||
| getcpuclockid.c | ||
| getreent.c | ||
| internals.h | ||
| join.c | ||
| joinrace.c | ||
| kernel-features.h | ||
| libc-internal.h | ||
| libc-symbols.h | ||
| linuxthreads.texi | ||
| lockfile.c | ||
| manager.c | ||
| mq_notify.c | ||
| mutex.c | ||
| no-tsd.c | ||
| oldsemaphore.c | ||
| posix-timer.h | ||
| prio.c | ||
| proc_service.h | ||
| pt-machine.c | ||
| ptclock_gettime.c | ||
| ptclock_settime.c | ||
| ptfork.c | ||
| pthread.c | ||
| ptlongjmp.c | ||
| queue.h | ||
| reent.c | ||
| reqsyscalls.c | ||
| restart.h | ||
| rwlock.c | ||
| semaphore.c | ||
| semaphore.h | ||
| shlib-compat.h | ||
| signals.c | ||
| specific.c | ||
| spinlock.c | ||
| spinlock.h | ||
| sysctl.c | ||
| td_init.c | ||
| td_log.c | ||
| td_symbol_list.c | ||
| td_ta_clear_event.c | ||
| td_ta_delete.c | ||
| td_ta_enable_stats.c | ||
| td_ta_event_addr.c | ||
| td_ta_event_getmsg.c | ||
| td_ta_get_nthreads.c | ||
| td_ta_get_ph.c | ||
| td_ta_get_stats.c | ||
| td_ta_map_id2thr.c | ||
| td_ta_map_lwp2thr.c | ||
| td_ta_new.c | ||
| td_ta_reset_stats.c | ||
| td_ta_set_event.c | ||
| td_ta_setconcurrency.c | ||
| td_ta_thr_iter.c | ||
| td_ta_tsd_iter.c | ||
| td_thr_clear_event.c | ||
| td_thr_dbresume.c | ||
| td_thr_dbsuspend.c | ||
| td_thr_event_enable.c | ||
| td_thr_event_getmsg.c | ||
| td_thr_get_info.c | ||
| td_thr_getfpregs.c | ||
| td_thr_getgregs.c | ||
| td_thr_getxregs.c | ||
| td_thr_getxregsize.c | ||
| td_thr_set_event.c | ||
| td_thr_setfpregs.c | ||
| td_thr_setgregs.c | ||
| td_thr_setprio.c | ||
| td_thr_setsigpending.c | ||
| td_thr_setxregs.c | ||
| td_thr_sigsetmask.c | ||
| td_thr_tsd.c | ||
| td_thr_validate.c | ||
| testrtsig.h | ||
| thread_db.h | ||
| thread_dbP.h | ||
| timer_create.c | ||
| timer_delete.c | ||
| timer_getoverr.c | ||
| timer_gettime.c | ||
| timer_routines.c | ||
| timer_settime.c | ||
| tst-cancel.c | ||
| tst-context.c | ||
| tststack.c | ||
| unload.c | ||
| weaks.c | ||
| wrapsyscall.c | ||