glibc/elf
Carlos O'Donell 141af660d8 Add comments to vDSO hwcap loading process.
Loading of the vDSO pseudo-hwcap from the type 2 GNU note is
a rather arcane and poorly documented process. Given that I had
a chance to review this code today I thought I would add all
of the things I had to lookup to verify the validity of the
process.

With a single .note.GNU the vDSO can register up to 64 flags,
though in practice you are limited to 64 - _DL_FIRST_EXTRA
bits which on x86 is 12 bits.

The only use of this that I know of is in the Xen support
in Linux where they use the 1st bit to indicate "nosegneg".
I see "We use bit 1 to avoid bugs in some versions of glibc
when bit 0 is used; the choice is otherwise arbitrary.", but
no reference to a glibc bug anywhere. The code as-is should
support bit zero, so we still have that free for future use.

The kernel, glibc, and ld.so.cache must coordinate to ensure
that bit values don't go too high and are used consistently.

---

2013-05-13  Carlos O'Donell  <carlos@redhat.com>

	* elf/dl-hwcaps.c (_dl_important_hwcaps): Comment vDSO hwcap loading.
	* elf/ldconfig.c (is_hwcap_platform): Comment each hwcap check.
	(main): Comment "tls" pseudo-hwcap.
2013-05-14 00:06:35 -04:00
..
cache.c ARM: Support loading unmarked objects from cache. 2013-02-08 12:26:12 -05:00
chroot_canon.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
circleload1.c
circlemod1.c
circlemod1a.c
circlemod2.c
circlemod2a.c
circlemod3.c
circlemod3a.c
constload1.c
constload2.c
constload3.c
dblload.c
dblloadmod1.c
dblloadmod2.c
dblloadmod3.c
dblunload.c
dep1.c
dep2.c
dep3.c
dep4.c
dl-addr.c New function _dl_find_dso_for_object 2013-02-18 18:00:17 +05:30
dl-brk.c
dl-cache.c Add more comments to _dl_load_cache_lookup(). 2013-02-08 12:55:34 -05:00
dl-caller.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-close.c Add more comments to dlclose() algorithm. 2013-05-09 17:37:15 -04:00
dl-conflict.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-debug.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-deps.c Remove lots of inline keywords. 2013-02-07 14:44:18 -08:00
dl-dst.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-environ.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-error.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-execstack.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-fini.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-fptr.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-hwcaps.c Add comments to vDSO hwcap loading process. 2013-05-14 00:06:35 -04:00
dl-init.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-iteratephdr.c Consolidate declarations of _dl_phdr, _dl_phnum. 2013-03-28 15:33:57 -07:00
dl-libc.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-load.c Fix invalid free of memory allocated during rtld init 2013-04-11 09:22:05 +02:00
dl-lookup.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-minimal.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-misc.c Split _dl_writev out from _dl_debug_vdprintf. 2013-05-06 11:30:41 -07:00
dl-object.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-open.c Remove a dead declaration. 2013-05-06 17:06:50 -07:00
dl-origin.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-profile.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-profstub.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-reloc.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-runtime.c Remove miscellaneous bounded-pointers relics in C code. 2013-02-15 00:51:53 +00:00
dl-sbrk.c
dl-scope.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-support.c Make _dl_phdr pointer to const. 2013-03-28 15:39:32 -07:00
dl-sym.c New function _dl_find_dso_for_object 2013-02-18 18:00:17 +05:30
dl-symaddr.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-sysdep.c Fix NEED_DL_SYSINFO{,_DSO} conditionalization in _dl_sysdep_start. 2013-05-03 15:09:48 -07:00
dl-tls.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-trampoline.c
dl-tsd.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-version.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dl-writev.h Split _dl_writev out from _dl_debug_vdprintf. 2013-05-06 11:30:41 -07:00
do-rel.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
dynamic-link.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
elf.h Adding MicroBlaze support to elf/elf.h 2013-04-16 09:48:08 +10:00
enbl-secure.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
failobj.c
filter.c
filtmod1.c
filtmod2.c
firstobj.c
gen-trusted-dirs.awk
genrtldtbl.awk
get-dynamic-info.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
global.c
globalmod1.c
ifuncdep1.c
ifuncdep1pic.c
ifuncdep2.c
ifuncdep2pic.c
ifuncdep5.c
ifuncdep5pic.c
ifuncmain1.c
ifuncmain1pic.c
ifuncmain1picstatic.c
ifuncmain1pie.c
ifuncmain1static.c
ifuncmain1staticpic.c
ifuncmain1staticpie.c
ifuncmain1vis.c
ifuncmain1vispic.c
ifuncmain1vispie.c
ifuncmain2.c
ifuncmain2pic.c
ifuncmain2picstatic.c
ifuncmain2static.c
ifuncmain3.c
ifuncmain4.c
ifuncmain4picstatic.c
ifuncmain4static.c
ifuncmain5.c
ifuncmain5pic.c
ifuncmain5picstatic.c
ifuncmain5pie.c
ifuncmain5static.c
ifuncmain5staticpic.c
ifuncmain6pie.c
ifuncmain7.c
ifuncmain7pic.c
ifuncmain7picstatic.c
ifuncmain7pie.c
ifuncmain7static.c
ifuncmod1.c
ifuncmod3.c
ifuncmod5.c
ifuncmod6.c
initfirst.c
interp.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
lateglobal.c
ldconfig.c Add comments to vDSO hwcap loading process. 2013-05-14 00:06:35 -04:00
ldd.bash.in Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
link.h Improve link_map.l_addr comment. 2013-02-02 10:29:17 +01:00
loadfail.c
loadtest.c
ltglobmod1.c
ltglobmod2.c
Makefile Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
multiload.c
neededobj1.c
neededobj2.c
neededobj3.c
neededobj4.c
neededobj5.c
neededobj6.c
neededtest2.c
neededtest3.c
neededtest4.c
neededtest.c
next.c
nextmod1.c
nextmod2.c
nodel2mod1.c
nodel2mod2.c
nodel2mod3.c
nodelete2.c
nodelete.c
nodelmod1.c
nodelmod2.c
nodelmod3.c
nodelmod4.c
nodlopen2.c
nodlopen.c
nodlopenmod2.c
nodlopenmod.c
noload.c
order2.c
order2mod1.c
order2mod2.c
order2mod3.c
order2mod4.c
order.c
origtest.c
pathoptobj.c
pldd-xx.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
pldd.c unify xmalloc prototypes & friends 2013-02-18 17:16:05 -05:00
preloadtest.c
readelflib.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
readlib.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
reldep2.c
reldep3.c
reldep4.c
reldep4mod1.c
reldep4mod2.c
reldep4mod3.c
reldep4mod4.c
reldep5.c
reldep6.c
reldep6mod0.c
reldep6mod1.c
reldep6mod2.c
reldep6mod3.c
reldep6mod4.c
reldep7.c
reldep7mod1.c
reldep7mod2.c
reldep8.c
reldep8mod1.c
reldep8mod2.c
reldep8mod3.c
reldep9.c
reldep9mod1.c
reldep9mod2.c
reldep9mod3.c
reldep.c
reldepmod1.c
reldepmod2.c
reldepmod3.c
reldepmod4.c
reldepmod5.c
reldepmod6.c
resolvfail.c
restest1.c
restest2.c
rtld-debugger-interface.txt
rtld-Rules Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
rtld.c Fix NEED_DL_SYSINFO_DSO conditionals. 2013-03-01 14:44:44 -08:00
setup-vdso.h Fix NEED_DL_SYSINFO_DSO conditionals. 2013-03-01 14:44:44 -08:00
sln.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
sofini.c
soinit.c
sotruss-lib.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
sotruss.ksh Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
sprof.c Use *stat64 instead of *stat in installed programs 2013-05-10 11:42:17 +02:00
static-stubs.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
testobj1_1.c
testobj1.c
testobj2.c
testobj3.c
testobj4.c
testobj5.c
testobj6.c
testobj.h
tls-macros.h
tlsdeschtab.h Remove lots of inline keywords. 2013-02-07 14:44:18 -08:00
tst-addr1.c
tst-align2.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-align.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-alignmod2.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-alignmod.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-array1-static.c
tst-array1.c Set constructor/destructor priority to 1000 2012-11-16 07:40:38 -08:00
tst-array1.exp
tst-array2.c
tst-array2.exp
tst-array2dep.c Set constructor/destructor priority to 1000 2012-11-16 07:40:38 -08:00
tst-array3.c
tst-array4.c
tst-array4.exp
tst-array5-static.c
tst-array5-static.exp
tst-array5.c
tst-array5.exp
tst-array5dep.c
tst-audit1.c
tst-audit2.c
tst-audit8.c Skip audit if l_reloc_result is NULL 2012-11-14 15:44:40 -08:00
tst-auditmod1.c
tst-deep1.c
tst-deep1mod1.c
tst-deep1mod2.c
tst-deep1mod3.c
tst-dlmodcount.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-dlmopen1.c
tst-dlmopen1mod.c
tst-dlmopen2.c
tst-dlmopen3.c
tst-dlopenrpath.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-dlopenrpathmod.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-execstack-mod.c
tst-execstack-needed.c
tst-execstack-prog.c
tst-execstack.c
tst-global1.c
tst-initorder2.c
tst-initorder2.exp
tst-initorder.c
tst-initorder.exp
tst-initordera1.c
tst-initordera2.c
tst-initordera3.c
tst-initordera4.c
tst-initorderb1.c
tst-initorderb2.c
tst-leaks1-static.c Check the main application only if SHARED is defined 2012-10-20 16:16:59 -07:00
tst-leaks1.c
tst-order-a1.c
tst-order-a2.c
tst-order-a3.c
tst-order-a4.c
tst-order-b1.c
tst-order-b2.c
tst-order-main.c
tst-pathopt.c
tst-pathopt.sh Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-pie1.c
tst-piemod1.c
tst-relsort1.c
tst-relsort1mod1.c
tst-relsort1mod2.c
tst-rtld-load-self.sh Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
tst-stackguard1-static.c
tst-stackguard1.c Don't use GLIBC_PRIVATE errno outside of libraries 2013-02-04 10:01:54 +01:00
tst-thrlock.c
tst-tls1-static.c
tst-tls1.c
tst-tls2-static.c
tst-tls2.c
tst-tls3.c
tst-tls4.c
tst-tls5.c
tst-tls6.c
tst-tls7.c
tst-tls8.c
tst-tls9-static.c
tst-tls9.c
tst-tls10.c
tst-tls10.h
tst-tls11.c
tst-tls12.c
tst-tls13.c
tst-tls14.c
tst-tls15.c
tst-tls16.c
tst-tls17.c
tst-tls18.c
tst-tls19.c
tst-tls19mod1.c
tst-tls19mod2.c
tst-tls19mod3.c
tst-tls-dlinfo.c
tst-tlsmod1.c
tst-tlsmod2.c
tst-tlsmod3.c
tst-tlsmod4.c
tst-tlsmod5.c
tst-tlsmod6.c
tst-tlsmod7.c
tst-tlsmod8.c
tst-tlsmod9.c
tst-tlsmod10.c
tst-tlsmod11.c
tst-tlsmod12.c
tst-tlsmod13.c
tst-tlsmod13a.c
tst-tlsmod14a.c
tst-tlsmod14b.c
tst-tlsmod15a.c
tst-tlsmod15b.c
tst-tlsmod16a.c
tst-tlsmod16b.c
tst-tlsmod17a.c
tst-tlsmod17b.c
tst-tlsmod18a.c
tst-unique1.c
tst-unique1mod1.c
tst-unique1mod2.c
tst-unique2.c
tst-unique2mod1.c
tst-unique2mod2.c
tst-unique3.cc
tst-unique3.h
tst-unique3lib2.cc
tst-unique3lib.cc
tst-unique4.cc
tst-unique4.h
tst-unique4lib.cc
unload2.c
unload2dep.c
unload2mod.c
unload3.c
unload3mod1.c
unload3mod2.c
unload3mod3.c
unload3mod4.c
unload4.c
unload4mod1.c
unload4mod2.c
unload4mod3.c
unload4mod4.c
unload5.c
unload6.c
unload6mod1.c
unload6mod2.c
unload6mod3.c
unload7.c
unload7mod1.c
unload7mod2.c
unload8.c
unload8mod1.c
unload8mod1x.c
unload8mod2.c
unload8mod3.c
unload.c
unloadmod.c
Versions New function _dl_find_dso_for_object 2013-02-18 18:00:17 +05:30
vismain.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
vismod1.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
vismod2.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
vismod3.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
vismod.h