glibc/misc
H.J. Lu 388b4f1a02 Avoid .symver on common symbols [BZ #21666]
The .symver directive on common symbol just creates a new common symbol,
not an alias and the newer assembler with the bug fix for

https://sourceware.org/bugzilla/show_bug.cgi?id=21661

will issue an error.  Before the fix, we got

$ readelf -sW libc.so | grep "loc[12s]"
  5109: 00000000003a0608     8 OBJECT  LOCAL  DEFAULT   36 loc1
  5188: 00000000003a0610     8 OBJECT  LOCAL  DEFAULT   36 loc2
  5455: 00000000003a0618     8 OBJECT  LOCAL  DEFAULT   36 locs
  6575: 00000000003a05f0     8 OBJECT  GLOBAL DEFAULT   36 locs@GLIBC_2.2.5
  7156: 00000000003a05f8     8 OBJECT  GLOBAL DEFAULT   36 loc1@GLIBC_2.2.5
  7312: 00000000003a0600     8 OBJECT  GLOBAL DEFAULT   36 loc2@GLIBC_2.2.5

in libc.so.  The versioned loc1, loc2 and locs have the wrong addresses.
After the fix, we got

$ readelf -sW libc.so | grep "loc[12s]"
  6570: 000000000039e3b8     8 OBJECT  GLOBAL DEFAULT   34 locs@GLIBC_2.2.5
  7151: 000000000039e3c8     8 OBJECT  GLOBAL DEFAULT   34 loc1@GLIBC_2.2.5
  7307: 000000000039e3c0     8 OBJECT  GLOBAL DEFAULT   34 loc2@GLIBC_2.2.5

	[BZ #21666]
	* misc/regexp.c (loc1): Add __attribute__ ((nocommon));
	(loc2): Likewise.
	(locs): Likewise.
2017-06-23 14:39:07 -07:00
..
bits
sys
Makefile
Versions
acct.c
ar.h
brk.c
bug-hsearch1.c
bug18240.c
chflags.c
chroot.c
daemon.c
dirname.c
efgcvt.c
efgcvt_r.c
err.c
err.h
error.c
error.h
fchflags.c
fdatasync.c
fgetxattr.c
flistxattr.c
fremovexattr.c
fsetxattr.c
fstab.c
fstab.h
fsync.c
ftruncate.c
ftruncate64.c
futimes.c
futimesat.c
getauxval.c
getclktck.c
getdomain.c
getdtsz.c
gethostid.c
gethostname.c
getloadavg.c
getpagesize.c
getpass.c
getsysstats.c
getttyent.c
getusershell.c
getxattr.c
gtty.c
hsearch.c
hsearch_r.c
ifunc-impl-list.c
init-misc.c
insremque.c
ioctl.c
lgetxattr.c
libgen.h
listxattr.c
llistxattr.c
lremovexattr.c
lsearch.c
lsetxattr.c
lutimes.c
madvise.c
makedev.c
mincore.c
mkdtemp.c
mkostemp.c
mkostemp64.c
mkostemps.c
mkostemps64.c
mkstemp.c
mkstemp64.c
mkstemps.c
mkstemps64.c
mktemp.c
mlock.c
mlockall.c
mmap.c
mmap64.c
mntent.c
mntent.h
mntent_r.c
mprotect.c
msync.c
munlock.c
munlockall.c
munmap.c
preadv.c
preadv2.c
preadv64.c
preadv64v2.c
pselect.c
ptrace.c
pwritev.c
pwritev2.c
pwritev64.c
pwritev64v2.c
qefgcvt.c
qefgcvt_r.c
readv.c
reboot.c
regexp.c
regexp.h
remap_file_pages.c
removexattr.c
revoke.c
sbrk.c
search.h
select.c
setdomain.c
setegid.c
seteuid.c
sethostid.c
sethostname.c
setregid.c
setreuid.c
setxattr.c
sgtty.h
sstk.c
stab.h
stty.c
swapoff.c
swapon.c
sync.c
syncfs.c
syscall.c
syscall.h
sysexits.h
syslog.c
syslog.h
truncate.c
truncate64.c
tsearch.c
tst-atomic-long.c
tst-atomic.c
tst-dirname.c
tst-efgcvt.c
tst-empty.c
tst-error1.c
tst-fdset.c
tst-hsearch.c
tst-insremque.c
tst-makedev.c
tst-mntent-blank-corrupt.c
tst-mntent-blank-passno.c
tst-mntent.c
tst-mntent2.c
tst-preadvwritev-common.c
tst-preadvwritev.c
tst-preadvwritev2-common.c
tst-preadvwritev2.c
tst-preadvwritev64.c
tst-preadvwritev64v2.c
tst-pselect.c
tst-tsearch.c
ttyent.h
ttyslot.c
ualarm.c
usleep.c
ustat.c
ustat.h
utimes.c
vhangup.c
writev.c