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 |