glibc/misc
Siddhesh Poyarekar 602f80ec8b Make __extern_always_inline usable on clang++ again
The fix for BZ #17266 (884ddc5081)
removed changes that had gone into cdefs.h to make
__extern_always_inline usable with clang++.  This patch adds back
support for clang to detect if GNU inlining semantics are available,
this time without breaking the gcc use case.  The check put here is
based on the earlier patch and assertion[1] that checking if
__GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE__ is defined is sufficient
to determine that clang++ suports GNU inlining semantics.

Tested with a simple program that builds with __extern_always_inline
with the patch and fails compilation without it.

 #include <stdio.h>
 #include <sys/cdefs.h>

extern void foo_alias (void) __asm ("foo");

__extern_always_inline void
foo (void)
{
  puts ("hi oh world!");
  return foo_alias ();
}

void
foo_alias (void)
{
  puts ("hell oh world");
}

int
main ()
{
  foo ();
}

[1] https://sourceware.org/ml/libc-alpha/2012-12/msg00306.html

	[BZ #17266]
	* misc/sys/cdefs.h: Define __extern_always_inline for clang
	4.2 and newer.
2014-09-16 22:16:01 +05:30
..
bits Combine __USE_BSD and __USE_SVID into __USE_MISC. 2014-02-12 23:41:01 +00:00
sys Make __extern_always_inline usable on clang++ again 2014-09-16 22:16:01 +05:30
Makefile Use existing makefile variables for dependencies on glibc libraries. 2014-05-16 21:38:08 +00:00
Versions Hide reference to mktemp in libpthread 2013-01-16 15:57:11 +01:00
acct.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ar.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
brk.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bug-hsearch1.c .. 2009-01-23 20:41:36 +00:00
chflags.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
chroot.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
daemon.c Update. 2004-09-25 06:49:33 +00:00
dirname.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
efgcvt.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
efgcvt_r.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
err.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
err.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
error.c Sync up error.c with gnulib 2014-07-10 14:24:30 +05:30
error.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fchflags.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fdatasync.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fgetxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
flistxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fremovexattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fsetxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fstab.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fstab.h Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
fsync.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ftruncate.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ftruncate64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
futimes.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
futimesat.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getauxval.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getclktck.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getdomain.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getdtsz.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
gethostid.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
gethostname.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getloadavg.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getpagesize.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getpass.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getsysstats.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getttyent.c Use (void) in no-arguments function definitions. 2013-06-08 00:22:23 +00:00
getusershell.c Use (void) in no-arguments function definitions. 2013-06-08 00:22:23 +00:00
getxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
gtty.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
hsearch.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
hsearch_r.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ifunc-impl-list.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
init-misc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
insremque.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ioctl.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
lgetxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
libgen.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
listxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
llistxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
lremovexattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
lsearch.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
lsetxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
lutimes.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
madvise.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mincore.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkdtemp.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkostemp.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkostemp64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkostemps.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkostemps64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkstemp.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkstemp64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkstemps.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mkstemps64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mktemp.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mlock.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mlockall.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mmap.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mmap64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mntent.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mntent.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mntent_r.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mprotect.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
msync.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
munlock.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
munlockall.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
munmap.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
preadv.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
preadv64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
pselect.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
ptrace.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
pwritev.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
pwritev64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
qefgcvt.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
qefgcvt_r.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
readv.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
reboot.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
regexp.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
regexp.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
remap_file_pages.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
removexattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
revoke.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sbrk.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
search.h Combine __USE_BSD and __USE_SVID into __USE_MISC. 2014-02-12 23:41:01 +00:00
select.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
setdomain.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
setegid.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
seteuid.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sethostid.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sethostname.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
setregid.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
setreuid.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
setxattr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sgtty.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sstk.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stab.h Update. 1997-06-21 02:59:26 +00:00
stty.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
swapoff.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
swapon.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sync.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
syncfs.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
syscall.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
syscall.h update from main archive 960107 1997-01-07 23:29:44 +00:00
sysexits.h Update. 1999-06-09 13:08:30 +00:00
syslog.c Use (void) in no-arguments function definitions. 2013-06-08 00:22:23 +00:00
syslog.h initial import 1995-02-18 01:27:10 +00:00
truncate.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
truncate64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tsearch.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-dirname.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-efgcvt.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-error1.c * stdio-common/Makefile (aux): Add fxprintf. 2005-07-19 23:46:55 +00:00
tst-fdset.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-hsearch.c Update. 2002-01-29 08:25:15 +00:00
tst-insremque.c [BZ #2766] 2006-06-17 17:01:42 +00:00
tst-mntent.c (main): Use tmpfile instead of tmpnam. 2004-03-22 10:50:50 +00:00
tst-mntent2.c * sysdeps/unix/sysv/linux/rtld-lowlevel.h 2006-12-09 22:29:37 +00:00
tst-pselect.c Fix build warnings in some test cases 2013-02-18 18:17:05 +05:30
tst-tsearch.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ttyent.h Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
ttyslot.c Use (void) in no-arguments function definitions. 2013-06-08 00:22:23 +00:00
ualarm.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
usleep.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ustat.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ustat.h Thu Jul 18 04:33:21 1996 Roland McGrath <roland@baalperazim.frob.com> 1996-07-18 08:43:26 +00:00
utimes.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
vhangup.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
writev.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00