glibc/sysdeps/x86_64
Martin Sebor 1626a1cfcd Add support for GCC 9 attribute copy.
GCC 9 has gained an enhancement to help detect attribute mismatches
between alias declarations and their targets.  It consists of a new
warning, -Wattribute-alias, an enhancement to an existing warning,
-Wmissing-attributes, and a new attribute called copy.

The purpose of the warnings is to help identify either possible bugs
(an alias declared with more restrictive attributes than its target
promises) or optimization or diagnostic opportunities (an alias target
missing some attributes that it could be declared with that might
benefit analysis and code generation).  The purpose of the new
attribute is to easily apply (almost) the same set of attributes
to one declaration as those already present on another.

As expected (and intended) the enhancement triggers warnings for
many alias declarations in Glibc code.  This change, tested on
x86_64-linux, avoids all instances of the new warnings by making
use of the attribute where appropriate.  To fully benefit from
the enhancement Glibc will need to be compiled with
 -Wattribute-alias=2 and remaining warnings reviewed and dealt with
(there are a couple of thousand but most should be straightforward
to deal with).

ChangeLog:

	* include/libc-symbols.h (__attribute_copy__): Define macro unless
	it's already defined.
	(_strong_alias): Use __attribute_copy__.
	(_weak_alias,  __hidden_ver1,  __hidden_nolink2): Same.
	* misc/sys/cdefs.h (__attribute_copy__): New macro.
	* sysdeps/x86_64/multiarch/memchr.c (memchr): Use __attribute_copy__.
	* sysdeps/x86_64/multiarch/memcmp.c (memcmp): Same.
	* sysdeps/x86_64/multiarch/mempcpy.c (mempcpy): Same.
	* sysdeps/x86_64/multiarch/memset.c (memset): Same.
	* sysdeps/x86_64/multiarch/stpcpy.c (stpcpy): Same.
	* sysdeps/x86_64/multiarch/strcat.c (strcat): Same.
	* sysdeps/x86_64/multiarch/strchr.c (strchr): Same.
	* sysdeps/x86_64/multiarch/strcmp.c (strcmp): Same.
	* sysdeps/x86_64/multiarch/strcpy.c (strcpy): Same.
	* sysdeps/x86_64/multiarch/strcspn.c (strcspn): Same.
	* sysdeps/x86_64/multiarch/strlen.c (strlen): Same.
	* sysdeps/x86_64/multiarch/strncmp.c (strncmp): Same.
	* sysdeps/x86_64/multiarch/strncpy.c (strncpy): Same.
	* sysdeps/x86_64/multiarch/strnlen.c (strnlen): Same.
	* sysdeps/x86_64/multiarch/strpbrk.c (strpbrk): Same.
	* sysdeps/x86_64/multiarch/strrchr.c (strrchr): Same.
	* sysdeps/x86_64/multiarch/strspn.c (strspn): Same.
2018-11-09 17:24:12 -07:00
..
64
fpu Use trunc functions not __trunc functions in glibc libm. 2018-09-20 21:11:10 +00:00
multiarch Add support for GCC 9 attribute copy. 2018-11-09 17:24:12 -07:00
nptl x86: Rename __glibc_reserved2 to ssp_base in tcbhead_t 2018-07-25 04:39:39 -07:00
x32
Implies
Makefile Rename the glibc.tune namespace to glibc.cpu 2018-08-02 23:49:19 +05:30
Versions Move __fentry__ version definition to sysdeps/{i386,x86_64} 2018-08-10 09:07:44 +02:00
____longjmp_chk.S
__longjmp.S x86: Support shadow stack pointer in setjmp/longjmp 2018-07-14 05:59:53 -07:00
_mcount.S
abort-instr.h
add_n.S
addmul_1.S
atomic-machine.h
bsd-_setjmp.S
bsd-setjmp.S
bzero.S
configure
configure.ac
crti.S x86: Add _CET_ENDBR to functions in crti.S 2018-07-17 16:05:18 -07:00
crtn.S
dl-irel.h [BZ #20271] Add newlines in __libc_fatal calls. 2018-08-31 18:04:32 -07:00
dl-lookupcfg.h
dl-machine.h elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
dl-procinfo.c
dl-runtime.c
dl-tls.c
dl-tls.h
dl-tlsdesc.S x86: Add _CET_ENDBR to functions in dl-tlsdesc.S 2018-07-17 16:07:17 -07:00
dl-tlsdesc.h
dl-trampoline.S x86: Move STATE_SAVE_OFFSET/STATE_SAVE_MASK to sysdep.h 2018-08-06 06:25:43 -07:00
dl-trampoline.h x86: Support IBT and SHSTK in Intel CET [BZ #21598] 2018-07-16 14:08:27 -07:00
ffs.c
ffsll.c
htonl.S
ifuncmain8.c
ifuncmod8.c
isa.h x86: Use _rdtsc intrinsic for HP_TIMING_NOW 2018-10-17 15:16:45 -07:00
jmpbuf-offsets.h
jmpbuf-unwind.h
l10nflist.c
ldbl2mpn.c
link-defines.sym
locale-defines.sym
localplt.data
lshift.S
machine-gmon.h
memchr.S
memcmp.S
memcopy.h
memcpy.S
memcpy_chk.S
memmove.S
memmove_chk.S
mempcpy.S
mempcpy_chk.S
memrchr.S
memset.S
memset_chk.S
memusage.h
mp_clz_tab.c
mul_1.S
preconfigure
preconfigure.ac
rawmemchr.S
rshift.S
rtld-offsets.sym
sched_cpucount.c
setjmp.S x86: Support shadow stack pointer in setjmp/longjmp 2018-07-14 05:59:53 -07:00
stack-aliasing.h
stackguard-macros.h
stackinfo.h
start.S
stpcpy.S
strcasecmp.S
strcasecmp_l-nonascii.c
strcasecmp_l.S
strcat.S
strchr.S
strchrnul.S
strcmp.S x86_64: Use _CET_NOTRACK in strcmp.S 2018-07-18 06:31:53 -07:00
strcpy.S
strcspn.S
strlen.S
strncase.S
strncase_l-nonascii.c
strncase_l.S
strncmp.S
strnlen.S
strpbrk.S
strrchr.S
strspn.S
sub_n.S
submul_1.S
sysdep.h
tls-macros.h
tls_get_addr.S
tlsdesc.c
tlsdesc.sym
tst-audit.h
tst-audit3.c
tst-audit4-aux.c
tst-audit4.c
tst-audit5.c
tst-audit6.c
tst-audit7.c
tst-audit10-aux.c
tst-audit10.c
tst-auditmod3a.c
tst-auditmod3b.c
tst-auditmod4a.c
tst-auditmod4b.c
tst-auditmod5a.c
tst-auditmod5b.c
tst-auditmod6a.c
tst-auditmod6b.c
tst-auditmod6c.c
tst-auditmod7a.c
tst-auditmod7b.c
tst-auditmod10a.c
tst-auditmod10b.c
tst-avx-aux.c
tst-avx.c
tst-avx512-aux.c
tst-avx512.c
tst-avx512mod.c
tst-avxmod.c
tst-mallocalign1.c
tst-platform-1.c
tst-platformmod-1.c
tst-platformmod-2.c
tst-quad1.c
tst-quad1pie.c
tst-quad2.c
tst-quad2pie.c
tst-quadmod1.S x86-64: Add endbr64 to tst-quadmod[12].S 2018-07-24 05:12:14 -07:00
tst-quadmod1pie.S
tst-quadmod2.S x86-64: Add endbr64 to tst-quadmod[12].S 2018-07-24 05:12:14 -07:00
tst-quadmod2pie.S
tst-split-dynreloc.c
tst-split-dynreloc.lds
tst-sse.c
tst-ssemod.c
tst-stack-align.h
tst-x86_64-1.c
tst-x86_64mod-1.c
wcschr.S
wcscmp.S x86-64: Optimize strcmp/wcscmp and strncmp/wcsncmp with AVX2 2018-06-01 16:32:43 -05:00
wcslen.S
wcsrchr.S
wmemset.S
wmemset_chk.S
wordcopy.c