summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2019-03-07 12:05:25 +0100
committerMark Wielaard <mark@klomp.org>2019-03-07 12:05:25 +0100
commit14030673602a4f331f348decd51e5f0160719f0e (patch)
treedb1e66a97a8133c34920699ccfeda56e2b01a965
parentb244a241a82c28f7fef33f37d82bc47631ceca4e (diff)
parent1e52d4ce3aa2093d12901d32fe07aae70211fe2a (diff)
Merge tag 'elfutils-0.176' into mjw/RH-DTSdts-0.176
elfutils 0.176 release Conflicts: tests/run-readelf-mixed-corenote.sh: Remove riscv testcase.
-rw-r--r--ChangeLog11
-rw-r--r--GPG-KEY141
-rw-r--r--NEWS10
-rw-r--r--backends/ChangeLog29
-rw-r--r--backends/Makefile.am2
-rw-r--r--backends/riscv64_corenote.c2
-rw-r--r--backends/riscv_corenote.c52
-rw-r--r--backends/riscv_init.c17
-rw-r--r--backends/riscv_retval.c251
-rw-r--r--backends/s390_init.c1
-rw-r--r--backends/s390_symbol.c38
-rw-r--r--config/ChangeLog8
-rw-r--r--config/elfutils.spec.in7
-rw-r--r--config/eu.am2
-rwxr-xr-xconfig/upload-release.sh2
-rw-r--r--configure.ac14
-rw-r--r--libdw/ChangeLog16
-rw-r--r--libdw/dwarf_child.c2
-rw-r--r--libdw/dwarf_getattrs.c2
-rw-r--r--libdw/dwarf_getsrclines.c11
-rw-r--r--libdw/dwarf_nextcu.c17
-rw-r--r--libdwfl/ChangeLog20
-rw-r--r--libdwfl/dwfl_segment_report_module.c6
-rw-r--r--libdwfl/linux-core-attach.c9
-rw-r--r--libdwfl/linux-proc-maps.c2
-rw-r--r--libdwfl/relocate.c80
-rw-r--r--libebl/ChangeLog20
-rw-r--r--libebl/eblcorenote.c39
-rw-r--r--libebl/eblobjnote.c44
-rw-r--r--libebl/libebl.h3
-rw-r--r--libelf/ChangeLog20
-rw-r--r--libelf/Makefile.am13
-rw-r--r--libelf/elf32_updatefile.c36
-rw-r--r--libelf/elf_begin.c22
-rw-r--r--libelf/note_xlate.h4
-rw-r--r--po/ChangeLog4
-rw-r--r--po/de.po264
-rw-r--r--po/es.po264
-rw-r--r--po/ja.po264
-rw-r--r--po/pl.po264
-rw-r--r--po/uk.po264
-rw-r--r--src/ChangeLog18
-rw-r--r--src/readelf.c31
-rw-r--r--src/strip.c2
-rw-r--r--tests/ChangeLog66
-rw-r--r--tests/Makefile.am16
-rw-r--r--tests/addsections.c37
-rw-r--r--tests/backtrace-child.c2
-rw-r--r--tests/backtrace-data.c14
-rw-r--r--tests/backtrace-subr.sh1
-rw-r--r--tests/backtrace.c5
-rwxr-xr-xtests/run-annobingroup.sh20
-rwxr-xr-xtests/run-backtrace-data.sh6
-rwxr-xr-xtests/run-readelf-compressed.sh5
-rwxr-xr-xtests/run-readelf-n.sh101
-rwxr-xr-xtests/run-strip-test-many.sh53
-rwxr-xr-xtests/run-strip-version.sh58
-rwxr-xr-xtests/testfile-version.bz2bin0 -> 378 bytes
-rw-r--r--tests/testfile_gnu_props.32be.o.bz2bin0 -> 225 bytes
-rw-r--r--tests/testfile_gnu_props.32le.o.bz2bin0 -> 215 bytes
-rw-r--r--tests/testfile_gnu_props.64be.o.bz2bin0 -> 238 bytes
-rw-r--r--tests/testfile_gnu_props.64le.o.bz2bin0 -> 233 bytes
62 files changed, 1842 insertions, 870 deletions
diff --git a/ChangeLog b/ChangeLog
index 45418a0a..5c45cccf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2019-02-14 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Set version to 0.176.
+ * NEWS: Mention riscv backend updates, new --enable-install-elfh
+ configure flag and fixed CVEs.
+ * GPG-KEY: Update.
+
+2019-01-18 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Add new --enable-install-elfh.
+
2018-07-04 Ross Burton <ross.burton@intel.com>
* configure.ac: Check for gawk.
diff --git a/GPG-KEY b/GPG-KEY
index cd60f822..671373e6 100644
--- a/GPG-KEY
+++ b/GPG-KEY
@@ -1,33 +1,114 @@
-Public key for drepper@redhat.com
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.2.1 (GNU/Linux)
-mQGiBDuFth0RBACPcHEkyqJE26wTXuuuCxpqJjxlBnNFkJGkWUoeu89QjzWgzXy/
-EA8+ptNBgCTPKnLEqhkRUyxAT/Uz+t+xbKqUtL54IzYfxO4NQsN/VVM0uppNfIJb
-MWvAjvpp2HCkd/32i693rlH+G9dvG8K57by3PBRHBgH2L8Q7t/QvA2AWpwCgzokX
-DDUiitysGn4rWO0rBBoR6OED/3ehpcHtbGixNoubRZAxpw99VTKs/I76OkrQzqcm
-+w+zwZeihJXC88yAHA77/LBB3YKaX3G4CmDQUbeRJ9zPlETTLmRMcF61dQdq/3qV
-Biq1sm6ctZ4uEpm8HnysKMT+VY4Xmj9LLzF2BdING9frcX9rk8Vk25iCLBronS0M
-IU3WA/sEvlUFlfbyCBRBoq+Rlr9u05fnHc7CLMKI7EIS1T1dLPxH1ivuUhyYNGAM
-RhCivBbT2Z0t/R4ksu3VdnPGkCyAAdWNSafSGqCYUzQH0u5Z8HK6c2iXrIX3Ipk5
-DhQOQ6k1tyYzuQw3cCf7RYRJ9/iup8RlscVt2kmGnSucqpxJCbQjVWxyaWNoIERy
-ZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT6IVwQTEQIAFwUCO4W2HQULBwoDBAMV
-AwIDFgIBAheAAAoJENoowjp5/0R0SqUAoL5HBbaRWR19vjldUeJvYCG2AR94AKDL
-nmVEaykaZWyyNg0OTuxLe1boa4hGBBARAgAGBQI8iQDvAAoJEFWW3Qzpv2U97wgA
-n1RVl6FbIHVVmT224nOp5b98OZVnAJ9ehXzM60RbmGi3kJNS30II+SGft4hGBBMR
-AgAGBQI9Tvt0AAoJEP3S3qzTM8uhUy0AoNqATBj2usEtJduGHukKZ9mQaycFAJ9y
-lq0MmZJwMZ3699e6rgMiHAMAVbkCDQQ7hbZPEAgAzuFAPq1sYUtpJClwX7+pdz1K
-dIgbxDKoSHh2rSRx24HLYY/xg9ps6fZF21/SBialKaB8BFnIeh8S9LXUtWt9aUeC
-klnnQwPbR0BGRcZAS7+nHZ9agiMd4CRe4RWFmS6KhIeUsDa70+8XhIm/C+Ogd7ag
-kBw7ykTb/jWHMyvcP9iY0QtmIatfVTDJUm7Rm5TtM1mDCml/gWIQJ5ezr9gv2NUG
-3kpNYwP+G9o4BLyTOHamix/0YHI/HiZSYiwq40ao0zROd/yXY6/a3mitN96AidJL
-5I5tbqnrFy6LmRvWmyOxWkJD/bF31rrO5PfVUgcVpUxbtW44PtVilhLuh+qjTwAD
-BQf+NTHwjUw1j+PZs/y5XnPw0x0ZdYGEl0I7NqtMgCxI4ZHT9jaLcLXARb3UVEuc
-1LuJ1tAA1ss1c1NLK3Lg+uZzeKMRffRYEUg0Emer8QGWr1uSOxDHcAzuRZX3PYNX
-cEGEyEm443DDnXr/4b8zYK6O+sy1Ld+SVxxp6jwtk0LyT7okgD0E1dDUzX+qxpsV
-ujbzdH4bdqocKouMNMT+BHeobNZpR4Tyz5+pwW+rw1+XZebyBUkIPXOoWPZpUTDG
-fZ+om9xfg0JOcKZIZ0X91dLQp5x99aCmzwWeWy9LFPTAf9pYky8wXzteEotE/Tkm
-DeA1caPC9IEK9BBrrS9TeubrEIhGBBgRAgAGBQI7hbZPAAoJENoowjp5/0R0Z38A
-mgM4FAquwltH0ooTdAmBMoCfKb4/AJ9ufAh4Rl9sFaCie/j8jdo02bcV1A==
-=Yeua
+mQINBFxDPtIBEAC8xePaWvq5cDMBYtrpdmR20YX5xrDXUeHgueSVE9Mw8yCan2Cq
+1Ac1jHYnXxp4Jj3q4tIS9Jq2oAbqxyvBMdJYqEz4z709eDnYBacZQcGqojLh3HI2
+P7lmmKxkL8rS3Q3Ug05mYT+MwgmRvIO1+kwQTcq1AeB9z9/zikgY1Jv1R86gH8G8
+4OPbJUowdE/mT3pQ+2UQnarCVPJ3WJtZNDXPRzskk0t5h+Mg5RtX+COoHfsvWHiE
+UTmHMfynw49GG/YF6jLSVzMlKMz3jdOePIArpm2BNUu8DvEn9at6daKR4Ah+ujDd
+08l9j8wFhJnenn/9+ENjm9kOGQWOmH/fEIOlMAATVdZEfHVfAWbgICPSrPyi+v3A
+CE4uEoaw85LgbAAbhzdswlLezLxS7LLTpfDZUFZfkho1MSGXaCQ475/iVAeuxi61
+B2VcmH4lOSH7HYNkMY8ggGk2/WG35eq8PZme8PvXUmLu+f2jzy9XFekIr+/Ks2Tc
+hCTYCw6bhSLPa19HapCxvWXgNcYzZ8jULqBXsAfj4NnzBTn6u5nsJ1reA8GoO9vL
+aQf3LDgr+UY/z+6N474lAVfr0eIdWzkWPvX8fcBCfiB944rPr+Q50RUfc9ngIKP4
+JsflhXTn601aL4r6qkCcBVqO/eRhb4vCAUo7csemTKzI/05ooGfQtZ3O5QARAQAB
+tB5NYXJrIFdpZWxhYXJkIDxtYXJrQGtsb21wLm9yZz6JAlEEEwEKADsCGwEFCwkI
+BwIGFQoJCAsCBBYCAwECHgECF4AWIQTsPP6I9soHiHdPXB0apEvmSd52CgUCXE37
+mQIZAQAKCRAapEvmSd52CuO9D/9Fi6LOrU+iYHjfIk+wT8jyhF1YNATnooa5W7y/
+4QlXOIyKmkXM/0faH1hZNGf4qVK4dBUewuhALMEzudkXEhzudg9KpB9SaHZNR5DZ
++YHo204zJ84P+aJa7F8FOScbNAiG4pFGC7sQxvtAz0skM0yLsdhNg2tM8lM3n9e/
+rO4EK7aR55ojzE9pCWhRSx/AKYT7545KzXuCRTky8fRcI8YeNNLPIseoV3QPkf7q
+Ni6YXl0yUHV5gQMCWqgbfdHAljd2+N1RZvdzfEOLVPLX4/dgxb36i9OKkuCAHLoL
+2UXfzcAElltHQundNi/xYzSizzEYBeIbVrbuqiJP1zmiPUKxHibkU3ThZZUbonKR
+NVPQe1hO47Cxyj1RxXl6Nt9uda3W9ow6Kr96Bjs3WVBSqsuohqaAlAxC6RccslrE
+w/7N7l8S423LJI6ZV+FvyJzmSAqkLNz/tuFSMj76uH4s1dLbRv8K4fcw1vZgqy/4
+jIhBFycn29hMNvImKbMnLDwC7K92lBGQ6hp75/0Hf1qHOpDaiyV9Qqzr3sTOMXJi
+Ym3ac5bDqJb9Mi5YPNB2OD3w3bDMGT5+eWjmw9RiYT5gNjY6nZhDiQS/PtIc6l3i
+2GaBjSdurwj47TlCWALj3ZiiEKiybanK5/YXdVXGchLnoNkxeI1YcANZhX60FWEy
+aHZsa7QbTWFyayBXaWVsYWFyZCA8bWp3QGdudS5vcmc+iQJOBBMBCgA4FiEE7Dz+
+iPbKB4h3T1wdGqRL5knedgoFAlxN+lMCGwEFCwkIBwIGFQoJCAsCBBYCAwECHgEC
+F4AACgkQGqRL5knedgo1bhAArI7kReYq4YtaxS8Pxb5MdPxiQVtvfkbycWCZ4owz
+PeEIkJqcbadNUiGSqCRR2xeT4kuzFZWILiZfBTwHwFM/bXRDK/FOn7F8aqUAV1tq
+2W70Z7BUpTwpAv7Xm5YvsfbTBZmllJltEiIrKIzULCtRKKVXgtOKg0sd/W2aXwyl
++OX+PVzu4mXXNEkO10J7VpnCvjyaJNeKgeJYQLizSWdEf7i6RX31yC29+GsSqika
+OHdfxJMM+bo/x/aCuYlgDB+OQ6LZzpXZO0C8B5SMgMfZaK1rxDtUtViajSyOFJ4I
+g6bcgc5qDCLnk407oEN1yBWps867uN/Bi4Dk+xh691feGsyq95DvPis2Ut+0X0/W
+i/uLg3uu/X5EcNHynwht7KaGCLeuOZKxvzfeudNeyKFX34HtFyE/2k9LR0mFX8Xn
+XQGBD9psOxcd2K8Rku9BjjKDZ/vf53sMh5vxUNo+zkd+5dLZWPnLrhkfQrepDBP+
+Tc/6W0VSZCP5/nKX6GjPwmELtZj4jGf33tgfNMJrmxGUjpDxtiJc7OroNC4he3F5
+AF4RNRa5VvHs6ah57swVvKyJmLH5mxxKIn39PspOhzVxSbkWNPLS+km2InPum+fm
+YKQL6IrHcqt/ecrR7o9GRgI0cJjLJ+wv93ti+gxsUWPbAUBaJPk24omIpQafFT/Y
+AEW0Hk1hcmsgV2llbGFhcmQgPG1qd0ByZWRoYXQuY29tPokCTgQTAQoAOBYhBOw8
+/oj2ygeId09cHRqkS+ZJ3nYKBQJcTfqnAhsBBQsJCAcCBhUKCQgLAgQWAgMBAh4B
+AheAAAoJEBqkS+ZJ3nYK6JIP/jGq2adAkk1IPsVx7X5argCXaI5o3aTG+N6BPMvi
+zGY4CyqTBmYAg3qRPWN4U+wxNFgzQ3nPfptJK6EDBAY4Lw+kKR4o8o5zPyjAjbc9
+/be5bvTwMFmMbzWxGWoJ4ch9W+wD4W+W8ssnJDbVi5Btp7kKyUgg3KP7oUQpxZ9M
+TgmKEmPuce9zOQ78q+LIPbkhI9zCS/1VCHkeVyn+TrnACoHx7sKgJoOwjVlcbW3S
+0sdCuaGg3+VLI3v3IpQ56UXIX6RVeLX9zVDZnAq72Age4HHcxjX97j16iL5ZhZRc
+24J5tpSkJgHt+RASOKHJGPIivCqKbQKhYc1G4MbFbGzclaLTXya3Q4ekFzo4ohd2
+ga7mgjG0SJ+aIU5wCYxEUDsqJLm+uH/nbQzXTxIoQhH5yub4OhW88z6LpwPGhLvz
+S2SuPJIXAlbGyrH70/uRZWkwKF/8mQjMCsLEYkZ9DRB815rUTc9CJkkeOlPXQUbx
+r2fDAgi0j3yAUxlrC7jESO/zUJrICbxChYAx9KMWG/2PsKbrGAAMKiC7+q6mY09Q
+63F/g1DEF2sb+bguMdWc7SEj64jFUf9wJ+vjU1F321Bkh/QWMABv6n+7EFkwnNky
+lCR5H1boOHO03TNT0jyLbBECR7/Mtpwt46c4+n9EPCmQyvdU3MVPORvZge1hzvuv
+fo22uQENBFxDuhkBCAC19Q021v7kTuwYKwEmbqQC5wvmbEMT4ldvQ8gWCUIFL9kT
+xM67IF0annsys+rrAyqqFUTq2onVmgjciu9upl6uDdV3wivCBEDN9ZLZAVHTSvii
+XDhnHUSg6EhCdZKhal9DKAi+vGSLSe14e2Kfoe4c6R0yDVI+Dn0OfUhlMXu2NoDS
+FLAdHsDHSCrE6xKO+BNgL2MPuMeXLhNitNIVrykoZMkFrUMcMsHrvrk05ah87RQO
+1e2ljenn8qxPRLdOVWc0TJiosjiy04vwDAYNUCPDL5W2Mp2bv2AeTPCzF1qkDnGK
+ZEqV2peWKCPB608lS1icw5oKtOl50PSgzTdaLVRXABEBAAGJAjYEGAEKACAWIQTs
+PP6I9soHiHdPXB0apEvmSd52CgUCXEO6GQIbDAAKCRAapEvmSd52Cpy8D/9tq4BQ
+3VwrDNCxycALqWvZSPv/AgsT6hRvQsLc6Yp0FEtz+frFPLWt7bylMrzKItpsr0G2
+FofWw0yNyHNYPmGlCi+SrWLJnUTEm5TZgwT+9kLt/mJ4B0J1gHkknXSo91S84DPa
+ik9CH0GmXIQyPANkDDlmp9W/Hk8oKxxvCx+SSsZ6ANXakcNVg/w4MhDW2HowW4sB
+vtltOFSgPRs9zISiNw//GYjeYrdOOnieMhszwpjQuK5XYnDhwiSap2D8nQlD/VpA
+a2CvE/fOFV2CJyKZfE0J8v5DZOU+SUwnty1f52ZA1s/OCysaK1LLdCXz3bQiybQZ
+hobcAneBVZFlNzf6xpR+pGtw3OVSyLQo4LSQf4lFszNy8FfE+BJ1/yUWFBjljLwI
+Hd4IW7Y17PugAc19fQ23krOIc3O4qsuYzqdhzYzqGbPvf7fY3Tz0BNcW5885KEQJ
+H7VJJLqpf3EELhmkLBONYiF10iggFSmn8WSQWbXm0kGRETvAzf+FYcJsKDu9QASD
+RNck8J20ZJGVLbZNdP+VuLOXCDAkSGIxi91TLi6bY0Mb2yNRgAq6cnIJUTAbcnw0
+5BLxRW+e8AS3HodjZHWzAMDPpZn5TFfJOXdDhdeePVGgkypxwnbeyTT3OjUEh37v
+r+XIgrTMpz+ZNpHxLr4bJatQEVK3H6Q3ZbQkMbkBDQRcQ7q3AQgAqSM4Wx4QvvCI
+f8is+57mLJhceB2kLt3VR67UFZC0ywcr5V0pvTuu2U1oUB+BVYC/A9UdnvWTyDef
+3xTCx0hAiiFhlMe6CkODOalmxI+KwPxD276+70tcxd8vR2FJviDQKw96f2hlLAnx
+R47GUp3cPfIgVfkvIXnXLMUJQvBhXeXqgYhOcAplI677n/zTeFjBtd/JqtyDoJ0D
+e1odEyC+ZZD/Jo5q80Sydhvb99BHQMgLTJTJPW1iRV2AK4xfBjxOMwqml9Lx4HRI
+pV/IHs3MTyhEpEA+I/eKpO6UxApHWHZ76Zm8BL8RwnfFaXjMueRhIGMFtJnLuNFc
+5mOLXa3uhwARAQABiQNsBBgBCgAgFiEE7Dz+iPbKB4h3T1wdGqRL5knedgoFAlxD
+urcCGwIBQAkQGqRL5knedgrAdCAEGQEKAB0WIQQSdoqWeVmQEHoNL9/8V+PMrNma
+eAUCXEO6twAKCRD8V+PMrNmaeEvuB/92qMj2mQN3CXRQUTlmzVNUJLJAwzjRDoSt
+3kqDrACJ2N8JLSxWFeHmEmrrmFPUmXfBUkT+F2W+OrsJlUtwepuTYROgLNZebFQd
+jB38oqsj8RMKb5ikWntRUka2xhSDRBa0IlpxHBWLHS8nEx1x4HB4uYRK3IpWShAV
+mWk7jiATGJLFYJGVo4TBfM27zCty8/GQN/3A2DAJ2OJbiJ12ByTgzztGdhJ69H/Q
+UltkK7eJUGMjPwhpmp07lrolyUurbzaLMQow4SLo/ZIxa0nPC+AoMSk06teichCZ
+wIyiU/70S0c/uL3RFhnTbgWcdQkAVpWdkwFqIES4xG5QLUu85/WT7lMQALJKKuOO
+pbOeKvyLV16Oo70OTms/LbmXU9+bjCjz7QISuzhI4rua0onjQzBaRXFYkfCjBudW
+aEpy/wP5wk6QlqxLkeZNCk0TswksLxQjyO2XgBcOnrSsQIEJ7VICG9PDvtVzbrSB
+YMjoDo58AyniEMVANyUnFYl1YBlFt506PDh86ZEqlpbbReAsYfEuBQdBfJhWph9W
+ZgJDVtEHUAxaiqisvNEbz4xRIAsxX/OxnQMdD09Xs50yvl38ERIadacejtQnAIYe
+EaUBsgQk3rt0+g9lm6trD7P4FXYhUD9vml6/n8TGB3UJi3lKpX41GSUC1y+oPna8
+p+EEmrm3BbB4fgnIkfYiEDNogvm2pe7nzUP7sNnE8RcyYcjUoEQ0Uo+HB6fk6NeB
+GKqaIKVexCcExnWKHvl0DZzGydvKx41nyzFI1sueg34LcWwpGHXzJyhmpjhNe1GO
+KtVGHCGKhKhppK4ntUZISciGh38wvKuFDohHO3JVZ9AhyRWKTuynzLarBpmvu11T
+Dbv0lfnZcghlWWHNlx8x8DdaEuFWXZTDuVXqGclmeV2hS0LomX33LCB4n0XkZtC9
+LsmTIsr+ZdVCAXUeX/pJONNxNF8G47lZLLgLWF9beuHWp3u1Io31fzh44TZxm1Z3
+1wCZjOrsL9bvy3xHyDFaDL+/7i6TXsSxtqTXuQENBFxDu6IBCACgVJJnY8zh8uHn
+8d/E7p4j+9ueTvTHMRYOS0kkGhHBC7JmxCw6/EvbnbTsI0CQeyIJHlmPIqDVgRVj
+ijcTWacd3vIdazzH9sqs65nl49yMnA23tIya4VWlbHC3J4x/LL84A4GaJO/FVF2v
+v6hVg3IGbopp5KX+pr6s56TiWddSDqMgjb7rSzjWuNyRK75ToctL7Y/Zn6st3Zio
+O7LXq3ghkWf8JR7ZaUFIY6P1qS5heiCHP0PxQJSrtpYzH3rKJoHpIkjxnsB/sD0C
+05cAdlzXBTUVTNLY+DPlQ7FeRkG+VK91briG4tvQ8ohhEiC9HuJu1AKMNWBZ9qeU
+wsXaJvNzABEBAAGJAjYEGAEKACAWIQTsPP6I9soHiHdPXB0apEvmSd52CgUCXEO7
+ogIbIAAKCRAapEvmSd52Ch8ZD/9wKuIlaRMSB1AMCwhGPaqXZahrJ649Y0jI4Jqp
+FKv2/U5hKHOG7bihRAeEj7pZzhlgBrkZg1SBdZ3vHs1ufElnfe5RQApdDm93daU5
+SP29iEivJQxKjF91EfEffl0trxxztBipI5/2D+kaS8cnNVfzo5ZEWy/cd6AShvRV
+HM7Y2QHc+mlaZhYhBvTtwC6avXNnG55WYgobGENeAwkyD072JF3XrxFb+XkcKxla
+9yRdWdHxJd5PYJqsKM+nVeJM226OwOyU235gfIhIP6pfGqF9UVH0uFoCYkVkUSjV
+d96Q+Cj0kdhTOrtLW1OY11d9TBxje42GOtc7X9Zzx1nhwU8rCCErF9/uJIJKlq7I
+08rMX3rFDTtizwN7g7ZBkDDiZO+BIKQPt/awA9NM+tda02hyfQokBBi+v8b/iKif
+KIfUaqPDo1PA5uxljdluyX8AXIotKjJXF6Elsiz7bVpcIc0ZXOOFr9ylmtZm51YN
+mOzDNznEBmol2oBZfsk2G55/QgShHmKUnvzKANBGfnfS/a/K7Hv4sfZAb58Prl6O
+mQSrkmhzFry/4BNLKq+nd4s8VXkJPpx3Ogf3DoIynqpNF0bwf52U5IgJSNcJN/Hr
+AwhaG1W+Y3LDe7S19M0cUzftEUeq3Jd89hoijC72tdba+BRfW0ncfvEcsk9QifSU
+1tvZxQ==
+=l2J7
-----END PGP PUBLIC KEY BLOCK-----
diff --git a/NEWS b/NEWS
index 95fbac02..5a06047f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+Version 0.176
+
+build: Add new --enable-install-elfh option.
+ Do NOT use this for system installs (it overrides glibc elf.h).
+
+backends: riscv improved core file and return value location support.
+
+Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150,
+ CVE-2019-7664, CVE-2019-7665
+
Version 0.175
readelf: Handle mutliple .debug_macro sections.
diff --git a/backends/ChangeLog b/backends/ChangeLog
index e2a02812..0c61a0b3 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,32 @@
+2019-02-15 Mark Wielaard <mark@klomp.org>
+
+ * s390_init.c (s390_init): Hook check_special_symbol.
+ * s390_symbol.c (s390_check_sepcial_symbol): New function.
+
+2018-12-27 Jim Wilson <jimw@sifive.com>
+
+ * Makefile.am (riscv_SRCS): Add riscv64_corenote.c.
+ * riscv64_corenote.c: New file.
+ * riscv_corenote.c (BITS): New.
+ (BACKEND): Conditional on BITS.
+ (ULONG, UID_T, GID_T, ALIGN_ULONG, ALIGN_UID_T, ALIGN_GID_T): Likewise.
+ (TYPE_ULONG, TYPE_UID_T, TYPE_GID_T): Likewise.
+ (prstatus_regs): Use BITS/8 instead of 8.
+ (PRSTATUS_REGS_SIZE): Likewise.
+ * riscv_init.c (riscv64_core_note): Declare.
+ (riscv_init): If ELFCLASS64 then use riscv64_core_note hook.
+
+ * Makefile.am (riscv_SRCS): Add riscv_retval.c.
+ * riscv_init.c: Include libelfP.h.
+ (riscv_return_value_location_lp64d): Declare.
+ (riscv_init): Delete unused attribute from elf parameter. Register
+ riscv_return_value_location_lp64d hook if 64-bit ELF and 64-bit FP
+ registers.
+ * riscv_retval.c: New file.
+
+ * riscv_corenote.c (prstatus_regs): Change offset from 1 to 8.
+ (PRSTATUS_REGSET_ITEMS): New.
+
2018-11-06 Mark Wielaard <mark@klomp.org>
* x86_64_symbol.c (x86_64_section_type_name): New function.
diff --git a/backends/Makefile.am b/backends/Makefile.am
index 3d85cdec..3a4e56ef 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -158,7 +158,7 @@ libebl_bpf_pic_a_SOURCES = $(bpf_SRCS)
am_libebl_bpf_pic_a_OBJECTS = $(bpf_SRCS:.c=.os)
riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \
- riscv_initreg.c riscv_corenote.c
+ riscv_initreg.c riscv_corenote.c riscv64_corenote.c riscv_retval.c
libebl_riscv_pic_a_SOURCES = $(riscv_SRCS)
am_libebl_riscv_pic_a_OBJECTS = $(riscv_SRCS:.c=.os)
diff --git a/backends/riscv64_corenote.c b/backends/riscv64_corenote.c
new file mode 100644
index 00000000..dbcb89d9
--- /dev/null
+++ b/backends/riscv64_corenote.c
@@ -0,0 +1,2 @@
+#define BITS 64
+#include "riscv_corenote.c"
diff --git a/backends/riscv_corenote.c b/backends/riscv_corenote.c
index 37cce7e3..416dffc3 100644
--- a/backends/riscv_corenote.c
+++ b/backends/riscv_corenote.c
@@ -35,26 +35,54 @@
#include <stdio.h>
#include <sys/time.h>
-#define BACKEND riscv_
+#ifndef BITS
+# define BITS 32
+# define BACKEND riscv_
+#else
+# define BITS 64
+# define BACKEND riscv64_
+#endif
+
#include "libebl_CPU.h"
-#define ULONG uint64_t
+#if BITS == 32
+# define ULONG uint32_t
+# define UID_T uint16_t
+# define GID_T uint16_t
+# define ALIGN_ULONG 4
+# define ALIGN_UID_T 2
+# define ALIGN_GID_T 2
+# define TYPE_ULONG ELF_T_WORD
+# define TYPE_UID_T ELF_T_HALF
+# define TYPE_GID_T ELF_T_HALF
+#else
+# define ULONG uint64_t
+# define UID_T uint32_t
+# define GID_T uint32_t
+# define ALIGN_ULONG 8
+# define ALIGN_UID_T 4
+# define ALIGN_GID_T 4
+# define TYPE_ULONG ELF_T_XWORD
+# define TYPE_UID_T ELF_T_WORD
+# define TYPE_GID_T ELF_T_WORD
+#endif
+
#define PID_T int32_t
-#define UID_T uint32_t
-#define GID_T uint32_t
-#define ALIGN_ULONG 8
#define ALIGN_PID_T 4
-#define ALIGN_UID_T 4
-#define ALIGN_GID_T 4
-#define TYPE_ULONG ELF_T_XWORD
#define TYPE_PID_T ELF_T_SWORD
-#define TYPE_UID_T ELF_T_WORD
-#define TYPE_GID_T ELF_T_WORD
+
static const Ebl_Register_Location prstatus_regs[] =
{
- { .offset = 1, .regno = 1, .count = 31, .bits = 64 } /* x1..x31 */
+ { .offset = BITS/8, .regno = 1, .count = 31, .bits = BITS } /* x1..x31 */
};
-#define PRSTATUS_REGS_SIZE (32 * 8)
+#define PRSTATUS_REGS_SIZE (32 * (BITS/8))
+
+#define PRSTATUS_REGSET_ITEMS \
+ { \
+ .name = "pc", .type = ELF_T_ADDR, .format = 'x', \
+ .offset = offsetof (struct EBLHOOK(prstatus), pr_reg[0]), \
+ .group = "register", .pc_register = true \
+ }
#include "linux-core-note.c"
diff --git a/backends/riscv_init.c b/backends/riscv_init.c
index 8b7ce8b5..3398c104 100644
--- a/backends/riscv_init.c
+++ b/backends/riscv_init.c
@@ -33,12 +33,18 @@
#define RELOC_PREFIX R_RISCV_
#include "libebl_CPU.h"
+#include "libelfP.h"
+
/* This defines the common reloc hooks based on riscv_reloc.def. */
#include "common-reloc.c"
+extern __typeof (EBLHOOK (return_value_location))
+ riscv_return_value_location_lp64d attribute_hidden;
+
+extern __typeof (EBLHOOK (core_note)) riscv64_core_note attribute_hidden;
const char *
-riscv_init (Elf *elf __attribute__ ((unused)),
+riscv_init (Elf *elf,
GElf_Half machine __attribute__ ((unused)),
Ebl *eh,
size_t ehlen)
@@ -58,7 +64,14 @@ riscv_init (Elf *elf __attribute__ ((unused)),
HOOK (eh, check_special_symbol);
HOOK (eh, machine_flag_check);
HOOK (eh, set_initial_registers_tid);
- HOOK (eh, core_note);
+ if (eh->class == ELFCLASS64)
+ eh->core_note = riscv64_core_note;
+ else
+ HOOK (eh, core_note);
+ if (eh->class == ELFCLASS64
+ && ((elf->state.elf64.ehdr->e_flags & EF_RISCV_FLOAT_ABI)
+ == EF_RISCV_FLOAT_ABI_DOUBLE))
+ eh->return_value_location = riscv_return_value_location_lp64d;
return MODVERSION;
}
diff --git a/backends/riscv_retval.c b/backends/riscv_retval.c
new file mode 100644
index 00000000..35b6010b
--- /dev/null
+++ b/backends/riscv_retval.c
@@ -0,0 +1,251 @@
+/* Function return value location for Linux/RISC-V ABI.
+ Copyright (C) 2018 Sifive, Inc.
+ Copyright (C) 2013 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <inttypes.h>
+
+#include <assert.h>
+#include <dwarf.h>
+
+#define BACKEND riscv_
+#include "libebl_CPU.h"
+
+static int
+dwarf_bytesize_aux (Dwarf_Die *die, Dwarf_Word *sizep)
+{
+ int bits;
+ if (((bits = 8 * dwarf_bytesize (die)) < 0
+ && (bits = dwarf_bitsize (die)) < 0)
+ || bits % 8 != 0)
+ return -1;
+
+ *sizep = bits / 8;
+ return 0;
+}
+
+static int
+pass_in_gpr_lp64 (const Dwarf_Op **locp, Dwarf_Word size)
+{
+ static const Dwarf_Op loc[] =
+ {
+ { .atom = DW_OP_reg10 }, { .atom = DW_OP_piece, .number = 8 },
+ { .atom = DW_OP_reg11 }, { .atom = DW_OP_piece, .number = 8 }
+ };
+
+ *locp = loc;
+ return size <= 8 ? 1 : 4;
+}
+
+static int
+pass_by_ref (const Dwarf_Op **locp)
+{
+ static const Dwarf_Op loc[] = { { .atom = DW_OP_breg10 } };
+
+ *locp = loc;
+ return 1;
+}
+
+static int
+pass_in_fpr_lp64f (const Dwarf_Op **locp, Dwarf_Word size)
+{
+ static const Dwarf_Op loc[] =
+ {
+ { .atom = DW_OP_regx, .number = 42 },
+ { .atom = DW_OP_piece, .number = 4 },
+ { .atom = DW_OP_regx, .number = 43 },
+ { .atom = DW_OP_piece, .number = 4 }
+ };
+
+ *locp = loc;
+ return size <= 4 ? 1 : 4;
+}
+
+static int
+pass_in_fpr_lp64d (const Dwarf_Op **locp, Dwarf_Word size)
+{
+ static const Dwarf_Op loc[] =
+ {
+ { .atom = DW_OP_regx, .number = 42 },
+ { .atom = DW_OP_piece, .number = 8 },
+ { .atom = DW_OP_regx, .number = 43 },
+ { .atom = DW_OP_piece, .number = 8 }
+ };
+
+ *locp = loc;
+ return size <= 8 ? 1 : 4;
+}
+
+static int
+flatten_aggregate_arg (Dwarf_Die *typedie __attribute__ ((unused)),
+ Dwarf_Die *arg0 __attribute__ ((unused)),
+ Dwarf_Die *arg1 __attribute__ ((unused)))
+{
+ /* ??? */
+ return 1;
+}
+
+static int
+pass_by_flattened_arg (const Dwarf_Op **locp __attribute__ ((unused)),
+ Dwarf_Word size __attribute__ ((unused)),
+ Dwarf_Die *arg0 __attribute__ ((unused)),
+ Dwarf_Die *arg1 __attribute__ ((unused)))
+{
+ /* ??? */
+ return -2;
+}
+
+int
+riscv_return_value_location_lp64d (Dwarf_Die *functypedie,
+ const Dwarf_Op **locp)
+{
+ /* Start with the function's type, and get the DW_AT_type attribute,
+ which is the type of the return value. */
+ Dwarf_Die typedie;
+ int tag = dwarf_peeled_die_type (functypedie, &typedie);
+ if (tag <= 0)
+ return tag;
+
+ Dwarf_Word size = (Dwarf_Word)-1;
+
+ /* If the argument type is a Composite Type that is larger than 16
+ bytes, then the argument is copied to memory allocated by the
+ caller and the argument is replaced by a pointer to the copy. */
+ if (tag == DW_TAG_structure_type || tag == DW_TAG_union_type
+ || tag == DW_TAG_class_type || tag == DW_TAG_array_type)
+ {
+ Dwarf_Die arg0, arg1;
+
+ if (dwarf_aggregate_size (&typedie, &size) < 0)
+ return -1;
+ /* A struct containing just one floating-point real is passed as though
+ it were a standalone floating-point real. A struct containing two
+ floating-point reals is passed in two floating-point registers, if
+ neither is more than FLEN bits wide. A struct containing just one
+ complex floating-point number is passed as though it were a struct
+ containing two floating-point reals. A struct containing one
+ floating-point real and one integer (or bitfield), in either order,
+ is passed in a floating-point register and an integer register,
+ provided the floating-point real is no more than FLEN bits wide and
+ the integer is no more than XLEN bits wide. */
+ if (tag == DW_TAG_structure_type
+ && flatten_aggregate_arg (&typedie, &arg0, &arg1))
+ return pass_by_flattened_arg (locp, size, &arg0, &arg1);
+ /* Aggregates larger than 2*XLEN bits are passed by reference. */
+ else if (size > 16)
+ return pass_by_ref (locp);
+ /* Aggregates whose total size is no more than XLEN bits are passed in
+ a register. Aggregates whose total size is no more than 2*XLEN bits
+ are passed in a pair of registers. */
+ else
+ return pass_in_gpr_lp64 (locp, size);
+ }
+
+ if (tag == DW_TAG_base_type
+ || tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type)
+ {
+ if (dwarf_bytesize_aux (&typedie, &size) < 0)
+ {
+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type)
+ size = 8;
+ else
+ return -1;
+ }
+
+ Dwarf_Attribute attr_mem;
+ if (tag == DW_TAG_base_type)
+ {
+ Dwarf_Word encoding;
+ if (dwarf_formudata (dwarf_attr_integrate (&typedie, DW_AT_encoding,
+ &attr_mem),
+ &encoding) != 0)
+ return -1;
+
+ switch (encoding)
+ {
+ case DW_ATE_boolean:
+ case DW_ATE_signed:
+ case DW_ATE_unsigned:
+ case DW_ATE_unsigned_char:
+ case DW_ATE_signed_char:
+ /* Scalars that are at most XLEN bits wide are passed in a single
+ argument register. Scalars that are 2*XLEN bits wide are
+ passed in a pair of argument registers. Scalars wider than
+ 2*XLEN are passed by reference; there are none for LP64D. */
+ return pass_in_gpr_lp64 (locp, size);
+
+ case DW_ATE_float:
+ /* A real floating-point argument is passed in a floating-point
+ argument register if it is no more than FLEN bits wide,
+ otherwise it is passed according to the integer calling
+ convention. */
+ switch (size)
+ {
+ case 4: /* single */
+ case 8: /* double */
+ return pass_in_fpr_lp64d (locp, size);
+
+ case 16: /* quad */
+ return pass_in_gpr_lp64 (locp, size);
+
+ default:
+ return -2;
+ }
+
+ case DW_ATE_complex_float:
+ /* A complex floating-point number is passed as though it were a
+ struct containing two floating-point reals. */
+ switch (size)
+ {
+ case 8: /* float _Complex */
+ return pass_in_fpr_lp64f (locp, size);
+
+ case 16: /* double _Complex */
+ return pass_in_fpr_lp64d (locp, size);
+
+ case 32: /* long double _Complex */
+ return pass_by_ref (locp);
+
+ default:
+ return -2;
+ }
+ }
+
+ return -2;
+ }
+ else
+ return pass_in_gpr_lp64 (locp, size);
+ }
+
+ *locp = NULL;
+ return 0;
+}
diff --git a/backends/s390_init.c b/backends/s390_init.c
index ba8df45d..0004aeea 100644
--- a/backends/s390_init.c
+++ b/backends/s390_init.c
@@ -54,6 +54,7 @@ s390_init (Elf *elf __attribute__ ((unused)),
eh->name = "IBM S/390";
s390_init_reloc (eh);
HOOK (eh, reloc_simple_type);
+ HOOK (eh, check_special_symbol);
HOOK (eh, register_info);
HOOK (eh, return_value_location);
if (eh->class == ELFCLASS64)
diff --git a/backends/s390_symbol.c b/backends/s390_symbol.c
index f91e1373..9e80ecaa 100644
--- a/backends/s390_symbol.c
+++ b/backends/s390_symbol.c
@@ -32,6 +32,7 @@
#include <elf.h>
#include <stddef.h>
+#include <string.h>
#define BACKEND s390_
#include "libebl_CPU.h"
@@ -55,3 +56,40 @@ s390_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type,
return ELF_T_NUM;
}
}
+
+/* The _GLOBAL_OFFSET_TABLE_ symbol might point to the DT_PLTGOT,
+ which is in the .got section, even if the symbol itself is
+ associated with the is a .got.plt section.
+ https://sourceware.org/ml/binutils/2018-07/msg00200.html */
+bool
+s390_check_special_symbol (Elf *elf, const GElf_Sym *sym,
+ const char *name, const GElf_Shdr *destshdr)
+{
+ if (name != NULL
+ && strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0)
+ {
+ size_t shstrndx;
+ if (elf_getshdrstrndx (elf, &shstrndx) != 0)
+ return false;
+ const char *sname = elf_strptr (elf, shstrndx, destshdr->sh_name);
+ if (sname != NULL
+ && (strcmp (sname, ".got") == 0 || strcmp (sname, ".got.plt") == 0))
+ {
+ Elf_Scn *scn = NULL;
+ while ((scn = elf_nextscn (elf, scn)) != NULL)
+ {
+ GElf_Shdr shdr_mem;
+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ if (shdr != NULL)
+ {
+ sname = elf_strptr (elf, shstrndx, shdr->sh_name);
+ if (sname != NULL && strcmp (sname, ".got") == 0)
+ return (sym->st_value >= shdr->sh_addr
+ && sym->st_value < shdr->sh_addr + shdr->sh_size);
+ }
+ }
+ }
+ }
+
+ return false;
+}
diff --git a/config/ChangeLog b/config/ChangeLog
index f281eb27..f956780c 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,11 @@
+2019-02-14 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in: Update for 0.176.
+
+2018-11-19 Mark Wielaard <mark@klomp.org>
+
+ * eu.am (AM_CFLAGS): Add -Wtrampolines.
+
2018-07-04 Mark Wielaard <mark@klomp.org>
* upload-release.sh: New file.
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index e2fb0e4d..794cbaf8 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -227,6 +227,13 @@ rm -rf ${RPM_BUILD_ROOT}
%{_sysctldir}/10-default-yama-scope.conf
%changelog
+* Thu Feb 14 2019 Mark Wielaard <mark@klomp.org> 0.176-1
+- build: Add new --enable-install-elfh option.
+ Do NOT use this for system installs (it overrides glibc elf.h).
+- backends: riscv improved core file and return value location support.
+- Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150,
+ CVE-2019-7664, CVE-2019-7665.
+
* Wed Nov 14 2018 Mark Wielaard <mark@klomp.org> 0.175-1
- readelf: Handle mutliple .debug_macro sections.
Recognize and parse GNU Property notes, NT_VERSION notes and
diff --git a/config/eu.am b/config/eu.am
index c2cc349c..82acda3a 100644
--- a/config/eu.am
+++ b/config/eu.am
@@ -70,7 +70,7 @@ IMPLICIT_FALLTHROUGH_WARNING=
endif
AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
- -Wold-style-definition -Wstrict-prototypes \
+ -Wold-style-definition -Wstrict-prototypes -Wtrampolines \
$(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
$(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
$(if $($(*F)_no_Werror),,-Werror) \
diff --git a/config/upload-release.sh b/config/upload-release.sh
index a44d40c9..470644d3 100755
--- a/config/upload-release.sh
+++ b/config/upload-release.sh
@@ -34,7 +34,7 @@ git checkout -b "$VERSION" "elfutils-${VERSION}"
# Create dist
autoreconf -v -f -i
./configure --enable-maintainer-mode
-make dist
+make -j$(nproc) && make dist
# Sign
mkdir $VERSION
diff --git a/configure.ac b/configure.ac
index e2b271a4..54ad07ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@ dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
-AC_INIT([elfutils],[0.175],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
+AC_INIT([elfutils],[0.176],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
dnl Workaround for older autoconf < 2.64
m4_ifndef([AC_PACKAGE_URL],
@@ -329,6 +329,11 @@ if test "$use_valgrind" = yes; then
fi
AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes)
+AC_ARG_ENABLE([install-elfh],
+AS_HELP_STRING([--enable-install-elfh],[install elf.h in include dir]),
+ [install_elfh=$enableval], [install_elfh=no])
+AM_CONDITIONAL(INSTALL_ELFH, test "$install_elfh" = yes)
+
AM_CONDITIONAL(BUILD_STATIC, [dnl
test "$use_gprof" = yes -o "$use_gcov" = yes])
@@ -664,6 +669,7 @@ AC_MSG_NOTICE([
NOT RECOMMENDED FEATURES (should all be no)
Experimental thread safety : ${use_locks}
+ install elf.h : ${install_elfh}
OTHER FEATURES
Deterministic archives by default : ${default_ar_deterministic}
@@ -679,3 +685,9 @@ AC_MSG_NOTICE([
use rpath in tests : ${tests_use_rpath}
test biarch : ${utrace_cv_cc_biarch}
])
+
+if test "$install_elfh" = yes; then
+ if test "${prefix}" = "/usr/local" -o "${prefix}" = "/usr"; then
+ AC_MSG_WARN([installing elf.h in ${includedir} might conflict with glibc/system elf.h])
+ fi
+fi
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 7caa2234..aaa62960 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,19 @@
+2019-02-02 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_nextcu.c (__libdw_next_unit): Define bytes_end.
+ Check there are enough bytes to read extended lenght, version
+ and unit.
+
+2019-01-20 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_getsrclines.c (read_srclines): Check terminating NUL byte
+ for dir and file lists.
+
+2018-10-23 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_child.c (__libdw_find_attr): Initialize readp to NULL.
+ * dwarf_getattrs.c (dwarf_getattrs): Initialize die_addr to NULL.
+
2018-10-20 Mark Wielaard <mark@klomp.org>
* libdw.map (ELFUTILS_0.175): New section. Add dwelf_elf_begin.
diff --git a/libdw/dwarf_child.c b/libdw/dwarf_child.c
index 9446b880..2e39d834 100644
--- a/libdw/dwarf_child.c
+++ b/libdw/dwarf_child.c
@@ -43,7 +43,7 @@ internal_function
__libdw_find_attr (Dwarf_Die *die, unsigned int search_name,
unsigned int *codep, unsigned int *formp)
{
- const unsigned char *readp;
+ const unsigned char *readp = NULL;
/* Find the abbreviation entry. */
Dwarf_Abbrev *abbrevp = __libdw_dieabbrev (die, &readp);
diff --git a/libdw/dwarf_getattrs.c b/libdw/dwarf_getattrs.c
index 50faf988..4ac16b1a 100644
--- a/libdw/dwarf_getattrs.c
+++ b/libdw/dwarf_getattrs.c
@@ -44,7 +44,7 @@ dwarf_getattrs (Dwarf_Die *die, int (*callback) (Dwarf_Attribute *, void *),
if (unlikely (offset == 1))
return 1;
- const unsigned char *die_addr;
+ const unsigned char *die_addr = NULL;
/* Find the abbreviation entry. */
Dwarf_Abbrev *abbrevp = __libdw_dieabbrev (die, &die_addr);
diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c
index 1432b1db..75ec9c79 100644
--- a/libdw/dwarf_getsrclines.c
+++ b/libdw/dwarf_getsrclines.c
@@ -315,7 +315,7 @@ read_srclines (Dwarf *dbg,
if (version < 5)
{
const unsigned char *dirp = linep;
- while (*dirp != 0)
+ while (dirp < lineendp && *dirp != 0)
{
uint8_t *endp = memchr (dirp, '\0', lineendp - dirp);
if (endp == NULL)
@@ -323,6 +323,8 @@ read_srclines (Dwarf *dbg,
++ndirs;
dirp = endp + 1;
}
+ if (dirp >= lineendp || *dirp != '\0')
+ goto invalid_data;
ndirs = ndirs + 1; /* There is always the "unknown" dir. */
}
else
@@ -392,11 +394,12 @@ read_srclines (Dwarf *dbg,
{
dirarray[n].dir = (char *) linep;
uint8_t *endp = memchr (linep, '\0', lineendp - linep);
- assert (endp != NULL);
+ assert (endp != NULL); // Checked above when calculating ndirlist.
dirarray[n].len = endp - linep;
linep = endp + 1;
}
/* Skip the final NUL byte. */
+ assert (*linep == '\0'); // Checked above when calculating ndirlist.
++linep;
}
else
@@ -471,7 +474,7 @@ read_srclines (Dwarf *dbg,
{
if (unlikely (linep >= lineendp))
goto invalid_data;
- while (*linep != 0)
+ while (linep < lineendp && *linep != '\0')
{
struct filelist *new_file = NEW_FILE ();
@@ -527,6 +530,8 @@ read_srclines (Dwarf *dbg,
goto invalid_data;
get_uleb128 (new_file->info.length, linep, lineendp);
}
+ if (linep >= lineendp || *linep != '\0')
+ goto invalid_data;
/* Skip the final NUL byte. */
++linep;
}
diff --git a/libdw/dwarf_nextcu.c b/libdw/dwarf_nextcu.c
index be113270..67cec449 100644
--- a/libdw/dwarf_nextcu.c
+++ b/libdw/dwarf_nextcu.c
@@ -85,6 +85,7 @@ __libdw_next_unit (Dwarf *dwarf, bool v4_debug_types, Dwarf_Off off,
beginning of the CU entry. */
const unsigned char *data = dwarf->sectiondata[sec_idx]->d_buf;
const unsigned char *bytes = data + off;
+ const unsigned char *bytes_end = data + dwarf->sectiondata[sec_idx]->d_size;
/* The format of the CU header is described in dwarf2p1 7.5.1 and
changed in DWARFv5 (to include unit type, switch location of some
@@ -164,17 +165,27 @@ __libdw_next_unit (Dwarf *dwarf, bool v4_debug_types, Dwarf_Off off,
}
if (length == DWARF3_LENGTH_64_BIT)
- /* This is a 64-bit DWARF format. */
- length = read_8ubyte_unaligned_inc (dwarf, bytes);
+ {
+ /* This is a 64-bit DWARF format. */
+ if (bytes_end - bytes < 8)
+ goto invalid;
+ length = read_8ubyte_unaligned_inc (dwarf, bytes);
+ }
/* Read the version stamp. Always a 16-bit value. */
+ if (bytes_end - bytes < 2)
+ goto invalid;
uint_fast16_t version = read_2ubyte_unaligned_inc (dwarf, bytes);
/* We keep unit_type at zero for older DWARF since we cannot
easily guess whether it is a compile or partial unit. */
uint8_t unit_type = 0;
if (version >= 5)
- unit_type = *bytes++;
+ {
+ if (bytes_end - bytes < 1)
+ goto invalid;
+ unit_type = *bytes++;
+ }
/* All these are optional. */
Dwarf_Off subdie_off = 0;
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 45cc1b4e..04cadb43 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,23 @@
+2019-01-25 Yonghong Song <yhs@fb.com>
+
+ * linux-proc-maps.c (proc_maps_report): Use PRIu64, not PRIi64, to
+ read the inode number.
+
+2019-01-20 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Check
+ dyn_filesz vs dyn_data_size after read_portion call.
+
+2019-01-16 Mark Wielaard <mark@klomp.org>
+
+ * linux-core-attach.c (core_next_thread): Pass desc to ebl_core_note.
+ (core_set_initial_registers): Likewise.
+
+2018-10-23 Mark Wielaard <mark@klomp.org>
+
+ * relocate.c (relocate_section): Only sanity check mmapped Elf files
+ for overlap. Don't error when section data was malloced, not mmapped.
+
2018-10-20 Mark Wielaard <mark@klomp.org>
* libdwflP.h (__libdw_open_elf): New internal function declaration.
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
index 0d633ffe..f6ad39b3 100644
--- a/libdwfl/dwfl_segment_report_module.c
+++ b/libdwfl/dwfl_segment_report_module.c
@@ -783,6 +783,12 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
if (dyn_filesz != 0 && dyn_filesz % dyn_entsize == 0
&& ! read_portion (&dyn_data, &dyn_data_size, dyn_vaddr, dyn_filesz))
{
+ /* dyn_data_size will be zero if we got everything from the initial
+ buffer, otherwise it will be the size of the new buffer that
+ could be read. */
+ if (dyn_data_size != 0)
+ dyn_filesz = dyn_data_size;
+
void *dyns = malloc (dyn_filesz);
Elf32_Dyn (*d32)[dyn_filesz / sizeof (Elf32_Dyn)] = dyns;
Elf64_Dyn (*d64)[dyn_filesz / sizeof (Elf64_Dyn)] = dyns;
diff --git a/libdwfl/linux-core-attach.c b/libdwfl/linux-core-attach.c
index 6c99b9e2..c0f1b0d0 100644
--- a/libdwfl/linux-core-attach.c
+++ b/libdwfl/linux-core-attach.c
@@ -137,7 +137,7 @@ core_next_thread (Dwfl *dwfl __attribute__ ((unused)), void *dwfl_arg,
const Ebl_Register_Location *reglocs;
size_t nitems;
const Ebl_Core_Item *items;
- if (! ebl_core_note (core_arg->ebl, &nhdr, name,
+ if (! ebl_core_note (core_arg->ebl, &nhdr, name, desc,
&regs_offset, &nregloc, &reglocs, &nitems, &items))
{
/* This note may be just not recognized, skip it. */
@@ -191,8 +191,9 @@ core_set_initial_registers (Dwfl_Thread *thread, void *thread_arg_voidp)
const Ebl_Register_Location *reglocs;
size_t nitems;
const Ebl_Core_Item *items;
- int core_note_err = ebl_core_note (core_arg->ebl, &nhdr, name, &regs_offset,
- &nregloc, &reglocs, &nitems, &items);
+ int core_note_err = ebl_core_note (core_arg->ebl, &nhdr, name, desc,
+ &regs_offset, &nregloc, &reglocs,
+ &nitems, &items);
/* __libdwfl_attach_state_for_core already verified the note is there. */
assert (core_note_err != 0);
assert (nhdr.n_type == NT_PRSTATUS);
@@ -383,7 +384,7 @@ dwfl_core_file_attach (Dwfl *dwfl, Elf *core)
const Ebl_Register_Location *reglocs;
size_t nitems;
const Ebl_Core_Item *items;
- if (! ebl_core_note (ebl, &nhdr, name,
+ if (! ebl_core_note (ebl, &nhdr, name, desc,
&regs_offset, &nregloc, &reglocs, &nitems, &items))
{
/* This note may be just not recognized, skip it. */
diff --git a/libdwfl/linux-proc-maps.c b/libdwfl/linux-proc-maps.c
index c4438c0f..719cba68 100644
--- a/libdwfl/linux-proc-maps.c
+++ b/libdwfl/linux-proc-maps.c
@@ -217,7 +217,7 @@ proc_maps_report (Dwfl *dwfl, FILE *f, GElf_Addr sysinfo_ehdr, pid_t pid)
uint64_t ino;
int nread = -1;
if (sscanf (line, "%" PRIx64 "-%" PRIx64 " %*s %" PRIx64
- " %x:%x %" PRIi64 " %n",
+ " %x:%x %" PRIu64 " %n",
&start, &end, &offset, &dmajor, &dminor, &ino, &nread) < 6
|| nread <= 0)
{
diff --git a/libdwfl/relocate.c b/libdwfl/relocate.c
index 58c56786..88b5211d 100644
--- a/libdwfl/relocate.c
+++ b/libdwfl/relocate.c
@@ -1,5 +1,5 @@
/* Relocate debug information.
- Copyright (C) 2005-2011, 2014, 2016 Red Hat, Inc.
+ Copyright (C) 2005-2011, 2014, 2016, 2018 Red Hat, Inc.
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -30,6 +30,7 @@
# include <config.h>
#endif
+#include "libelfP.h"
#include "libdwflP.h"
typedef uint8_t GElf_Byte;
@@ -561,39 +562,54 @@ relocate_section (Dwfl_Module *mod, Elf *relocated, const GElf_Ehdr *ehdr,
shdrs or phdrs data then we refuse to do the relocations. It
isn't illegal for ELF section data to overlap the header data,
but updating the (relocation) data might corrupt the in-memory
- libelf headers causing strange corruptions or errors. */
- size_t ehsize = gelf_fsize (relocated, ELF_T_EHDR, 1, EV_CURRENT);
- if (unlikely (shdr->sh_offset < ehsize
- || tshdr->sh_offset < ehsize))
- return DWFL_E_BADELF;
-
- GElf_Off shdrs_start = ehdr->e_shoff;
- size_t shnums;
- if (elf_getshdrnum (relocated, &shnums) < 0)
- return DWFL_E_LIBELF;
- /* Overflows will have been checked by elf_getshdrnum/get|rawdata. */
- size_t shentsize = gelf_fsize (relocated, ELF_T_SHDR, 1, EV_CURRENT);
- GElf_Off shdrs_end = shdrs_start + shnums * shentsize;
- if (unlikely ((shdrs_start < shdr->sh_offset + shdr->sh_size
- && shdr->sh_offset < shdrs_end)
- || (shdrs_start < tshdr->sh_offset + tshdr->sh_size
- && tshdr->sh_offset < shdrs_end)))
- return DWFL_E_BADELF;
-
- GElf_Off phdrs_start = ehdr->e_phoff;
- size_t phnums;
- if (elf_getphdrnum (relocated, &phnums) < 0)
- return DWFL_E_LIBELF;
- if (phdrs_start != 0 && phnums != 0)
+ libelf headers causing strange corruptions or errors.
+
+ This is only an issue if the ELF is mmapped and the section data
+ comes from the mmapped region (is not malloced or decompressed).
+ */
+ if (relocated->map_address != NULL)
{
- /* Overflows will have been checked by elf_getphdrnum/get|rawdata. */
- size_t phentsize = gelf_fsize (relocated, ELF_T_PHDR, 1, EV_CURRENT);
- GElf_Off phdrs_end = phdrs_start + phnums * phentsize;
- if (unlikely ((phdrs_start < shdr->sh_offset + shdr->sh_size
- && shdr->sh_offset < phdrs_end)
- || (phdrs_start < tshdr->sh_offset + tshdr->sh_size
- && tshdr->sh_offset < phdrs_end)))
+ size_t ehsize = gelf_fsize (relocated, ELF_T_EHDR, 1, EV_CURRENT);
+ if (unlikely (shdr->sh_offset < ehsize
+ || tshdr->sh_offset < ehsize))
return DWFL_E_BADELF;
+
+ GElf_Off shdrs_start = ehdr->e_shoff;
+ size_t shnums;
+ if (elf_getshdrnum (relocated, &shnums) < 0)
+ return DWFL_E_LIBELF;
+ /* Overflows will have been checked by elf_getshdrnum/get|rawdata. */
+ size_t shentsize = gelf_fsize (relocated, ELF_T_SHDR, 1, EV_CURRENT);
+ GElf_Off shdrs_end = shdrs_start + shnums * shentsize;
+ if (unlikely (shdrs_start < shdr->sh_offset + shdr->sh_size
+ && shdr->sh_offset < shdrs_end))
+ if ((scn->flags & ELF_F_MALLOCED) == 0)
+ return DWFL_E_BADELF;
+
+ if (unlikely (shdrs_start < tshdr->sh_offset + tshdr->sh_size
+ && tshdr->sh_offset < shdrs_end))
+ if ((tscn->flags & ELF_F_MALLOCED) == 0)
+ return DWFL_E_BADELF;
+
+ GElf_Off phdrs_start = ehdr->e_phoff;
+ size_t phnums;
+ if (elf_getphdrnum (relocated, &phnums) < 0)
+ return DWFL_E_LIBELF;
+ if (phdrs_start != 0 && phnums != 0)
+ {
+ /* Overflows will have been checked by elf_getphdrnum/get|rawdata. */
+ size_t phentsize = gelf_fsize (relocated, ELF_T_PHDR, 1, EV_CURRENT);
+ GElf_Off phdrs_end = phdrs_start + phnums * phentsize;
+ if (unlikely (phdrs_start < shdr->sh_offset + shdr->sh_size
+ && shdr->sh_offset < phdrs_end))
+ if ((scn->flags & ELF_F_MALLOCED) == 0)
+ return DWFL_E_BADELF;
+
+ if (unlikely (phdrs_start < tshdr->sh_offset + tshdr->sh_size
+ && tshdr->sh_offset < phdrs_end))
+ if ((tscn->flags & ELF_F_MALLOCED) == 0)
+ return DWFL_E_BADELF;
+ }
}
/* Fetch the relocation section and apply each reloc in it. */
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index a2f89562..acc68919 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,23 @@
+2019-01-29 Mark Wielaard <mark@klomp.org>
+
+ * eblobjnote.c (ebl_object_note): Check pr_datasz padding doesn't
+ overflow descsz.
+
+2019-01-16 Mark Wielaard <mark@klomp.org>
+
+ * libebl.h (ebl_core_note): Add desc as argument.
+ * eblcorenote.c (ebl_core_note): Take desc as an argument, check
+ it contains a zero terminated string if it is an NT_PLATFORM note.
+
+2019-01-16 Mark Wielaard <mark@klomp.org>
+
+ * eblobjnte.c (ebl_object_note): Check pr_datasz isn't too large.
+
+2018-12-02 Mark Wielaard <mark@klomp.org>
+
+ * eblobjnte.c (ebl_object_note): For GNU_PROPERTY_STACK_SIZE use
+ an Elf32_Addr or Elf64_Addr to read and print the size.
+
2018-11-15 Mark Wielaard <mark@klomp.org>
* eblobjnotetypename.c (ebl_object_note_type_name): Don't update
diff --git a/libebl/eblcorenote.c b/libebl/eblcorenote.c
index 783f9815..7fab3974 100644
--- a/libebl/eblcorenote.c
+++ b/libebl/eblcorenote.c
@@ -36,11 +36,13 @@
#include <inttypes.h>
#include <stdio.h>
#include <stddef.h>
+#include <string.h>
#include <libeblP.h>
int
ebl_core_note (Ebl *ebl, const GElf_Nhdr *nhdr, const char *name,
+ const char *desc,
GElf_Word *regs_offset, size_t *nregloc,
const Ebl_Register_Location **reglocs, size_t *nitems,
const Ebl_Core_Item **items)
@@ -51,28 +53,25 @@ ebl_core_note (Ebl *ebl, const GElf_Nhdr *nhdr, const char *name,
{
/* The machine specific function did not know this type. */
- *regs_offset = 0;
- *nregloc = 0;
- *reglocs = NULL;
- switch (nhdr->n_type)
+ /* NT_PLATFORM is kind of special since it needs a zero terminated
+ string (other notes often have a fixed size string). */
+ static const Ebl_Core_Item platform[] =
{
-#define ITEMS(type, table) \
- case type: \
- *items = table; \
- *nitems = sizeof table / sizeof table[0]; \
- result = 1; \
- break
+ {
+ .name = "Platform",
+ .type = ELF_T_BYTE, .count = 0, .format = 's'
+ }
+ };
- static const Ebl_Core_Item platform[] =
- {
- {
- .name = "Platform",
- .type = ELF_T_BYTE, .count = 0, .format = 's'
- }
- };
- ITEMS (NT_PLATFORM, platform);
-
-#undef ITEMS
+ if (nhdr->n_type == NT_PLATFORM
+ && memchr (desc, '\0', nhdr->n_descsz) != NULL)
+ {
+ *regs_offset = 0;
+ *nregloc = 0;
+ *reglocs = NULL;
+ *items = platform;
+ *nitems = 1;
+ result = 1;
}
}
diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c
index 58ac86d7..f7ac915c 100644
--- a/libebl/eblobjnote.c
+++ b/libebl/eblobjnote.c
@@ -350,6 +350,13 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type,
desc += 8;
descsz -= 8;
+ if (prop.pr_datasz > descsz)
+ {
+ printf ("BAD property datasz: %" PRId32 "\n",
+ prop.pr_datasz);
+ return;
+ }
+
int elfclass = gelf_getclass (ebl->elf);
char *elfident = elf_getident (ebl->elf, NULL);
GElf_Ehdr ehdr;
@@ -360,15 +367,22 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type,
if (prop.pr_type == GNU_PROPERTY_STACK_SIZE)
{
printf ("STACK_SIZE ");
- if (prop.pr_datasz == 4 || prop.pr_datasz == 8)
+ union
+ {
+ Elf64_Addr a64;
+ Elf32_Addr a32;
+ } addr;
+ if ((elfclass == ELFCLASS32 && prop.pr_datasz == 4)
+ || (elfclass == ELFCLASS64 && prop.pr_datasz == 8))
{
- GElf_Addr addr;
in.d_type = ELF_T_ADDR;
out.d_type = ELF_T_ADDR;
in.d_size = prop.pr_datasz;
- out.d_size = sizeof (addr);
+ out.d_size = prop.pr_datasz;
in.d_buf = (void *) desc;
- out.d_buf = (void *) &addr;
+ out.d_buf = (elfclass == ELFCLASS32
+ ? (void *) &addr.a32
+ : (void *) &addr.a64);
if (gelf_xlatetom (ebl->elf, &out, &in,
elfident[EI_DATA]) == NULL)
@@ -376,7 +390,10 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type,
printf ("%s\n", elf_errmsg (-1));
return;
}
- printf ("%#" PRIx64 "\n", addr);
+ if (elfclass == ELFCLASS32)
+ printf ("%#" PRIx32 "\n", addr.a32);
+ else
+ printf ("%#" PRIx64 "\n", addr.a64);
}
else
printf (" (garbage datasz: %" PRIx32 ")\n",
@@ -479,16 +496,17 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type,
printf ("%02" PRIx8 "\n", (uint8_t) desc[i]);
}
}
+
if (elfclass == ELFCLASS32)
- {
- desc += NOTE_ALIGN4 (prop.pr_datasz);
- descsz -= NOTE_ALIGN4 (prop.pr_datasz);
- }
+ prop.pr_datasz = NOTE_ALIGN4 (prop.pr_datasz);
else
- {
- desc += NOTE_ALIGN8 (prop.pr_datasz);
- descsz -= NOTE_ALIGN8 (prop.pr_datasz);
- }
+ prop.pr_datasz = NOTE_ALIGN8 (prop.pr_datasz);
+
+ desc += prop.pr_datasz;
+ if (descsz > prop.pr_datasz)
+ descsz -= prop.pr_datasz;
+ else
+ descsz = 0;
}
}
break;
diff --git a/libebl/libebl.h b/libebl/libebl.h
index ca9b9fec..24922eb8 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -319,7 +319,8 @@ typedef struct
/* Describe the format of a core file note with the given header and NAME.
NAME is not guaranteed terminated, it's NHDR->n_namesz raw bytes. */
-extern int ebl_core_note (Ebl *ebl, const GElf_Nhdr *nhdr, const char *name,
+extern int ebl_core_note (Ebl *ebl, const GElf_Nhdr *nhdr,
+ const char *name, const char *desc,
GElf_Word *regs_offset, size_t *nregloc,
const Ebl_Register_Location **reglocs,
size_t *nitems, const Ebl_Core_Item **items)
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index 68c4fbdd..d8e8fdc8 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,23 @@
+2019-02-14 Mark Wielaard <mark@klomp.org>
+
+ * elf_begin.c (read_long_names): Make sure ar_size is properly
+ terminated. Sanity check len early if we can.
+
+2019-01-18 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (INSTALL_ELFH): Add elf.h to include_HEADERS when
+ defined, otherwise (the default) add elf.h to noinst_HEADERS.
+
+2019-01-16 Mark Wielaard <mark@klomp.org>
+
+ * note_xlate.h (elf_cvt_note): Check n_namesz and n_descsz don't
+ overflow note_len into note header.
+
+2018-11-17 Mark Wielaard <mark@klomp.org>
+
+ * elf32_updatefile.c (updatemmap): Make sure to call convert
+ function on a properly aligned destination.
+
2018-11-16 Mark Wielaard <mark@klomp.org>
* libebl.h (__elf32_msize): Mark with const attribute.
diff --git a/libelf/Makefile.am b/libelf/Makefile.am
index ba4e3ebf..0d8679f2 100644
--- a/libelf/Makefile.am
+++ b/libelf/Makefile.am
@@ -39,6 +39,16 @@ noinst_LIBRARIES = libelf_pic.a
noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so)
include_HEADERS = libelf.h gelf.h nlist.h
+noinst_HEADERS = abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
+ version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h \
+ chdr_xlate.h
+
+if INSTALL_ELFH
+include_HEADERS += elf.h
+else
+noinst_HEADERS += elf.h
+endif
+
pkginclude_HEADERS = elf-knowledge.h
libelf_a_CFLAGS = -fPIC -fvisibility=hidden $(AM_CFLAGS)
@@ -124,9 +134,6 @@ uninstall: uninstall-am
rm -f $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
rm -f $(DESTDIR)$(libdir)/libelf.so
-noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
- version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h \
- chdr_xlate.h
EXTRA_DIST = libelf.map
CLEANFILES += $(am_libelf_pic_a_OBJECTS) libelf.so.$(VERSION)
diff --git a/libelf/elf32_updatefile.c b/libelf/elf32_updatefile.c
index f2e9a288..284bacc9 100644
--- a/libelf/elf32_updatefile.c
+++ b/libelf/elf32_updatefile.c
@@ -1,5 +1,5 @@
/* Write changed data structures.
- Copyright (C) 2000-2010, 2014, 2015, 2016 Red Hat, Inc.
+ Copyright (C) 2000-2010, 2014, 2015, 2016, 2018 Red Hat, Inc.
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2000.
@@ -354,7 +354,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
user's section data with the latest one, rather than
crashing. */
- if (unlikely (change_bo))
+ if (unlikely (change_bo
+ && dl->data.d.d_size != 0
+ && dl->data.d.d_type != ELF_T_BYTE))
{
#if EV_NUM != 2
xfct_t fctp;
@@ -364,9 +366,33 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type]
#endif
- /* Do the real work. */
- (*fctp) (last_position, dl->data.d.d_buf,
- dl->data.d.d_size, 1);
+ size_t align;
+ align = __libelf_type_align (ELFW(ELFCLASS,LIBELFBITS),
+ dl->data.d.d_type);
+ if ((((uintptr_t) last_position)
+ & (uintptr_t) (align - 1)) == 0)
+ {
+ /* No need to copy, we can convert directly. */
+ (*fctp) (last_position, dl->data.d.d_buf,
+ dl->data.d.d_size, 1);
+ }
+ else
+ {
+ /* We have to do the conversion on properly
+ aligned memory first. */
+ size_t size = dl->data.d.d_size;
+ char *converted = aligned_alloc (align, size);
+ if (converted == NULL)
+ {
+ __libelf_seterrno (ELF_E_NOMEM);
+ return 1;
+ }
+ (*fctp) (converted, dl->data.d.d_buf, size, 1);
+
+ /* And then write it to the mmapped file. */
+ memcpy (last_position, converted, size);
+ free (converted);
+ }
last_position += dl->data.d.d_size;
}
diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c
index b20ab4f3..fde14c61 100644
--- a/libelf/elf_begin.c
+++ b/libelf/elf_begin.c
@@ -736,7 +736,17 @@ read_long_names (Elf *elf)
hdr = &hdrm;
}
- len = atol (hdr->ar_size);
+ /* The ar_size is given as a fixed size decimal string, right
+ padded with spaces. Make sure we read it properly even if
+ there is no terminating space. */
+ char buf[sizeof (hdr->ar_size) + 1];
+ const char *string = hdr->ar_size;
+ if (hdr->ar_size[sizeof (hdr->ar_size) - 1] != ' ')
+ {
+ *((char *) mempcpy (buf, hdr->ar_size, sizeof (hdr->ar_size))) = '\0';
+ string = buf;
+ }
+ len = atol (string);
if (memcmp (hdr->ar_name, "// ", 16) == 0)
break;
@@ -744,6 +754,13 @@ read_long_names (Elf *elf)
offset += sizeof (struct ar_hdr) + ((len + 1) & ~1l);
}
+ /* Sanity check len early if we can. */
+ if (elf->map_address != NULL)
+ {
+ if (len > elf->maximum_size - offset - sizeof (struct ar_hdr))
+ return NULL;
+ }
+
/* Due to the stupid format of the long name table entry (which are not
NUL terminted) we have to provide an appropriate representation anyhow.
Therefore we always make a copy which has the appropriate form. */
@@ -754,8 +771,6 @@ read_long_names (Elf *elf)
if (elf->map_address != NULL)
{
- if (len > elf->maximum_size - offset - sizeof (struct ar_hdr))
- goto too_much;
/* Simply copy it over. */
elf->state.ar.long_names = (char *) memcpy (newp,
elf->map_address + offset
@@ -769,7 +784,6 @@ read_long_names (Elf *elf)
+ sizeof (struct ar_hdr))
!= len))
{
- too_much:
/* We were not able to read all data. */
free (newp);
elf->state.ar.long_names = NULL;
diff --git a/libelf/note_xlate.h b/libelf/note_xlate.h
index 9bdc3e2c..bc9950ff 100644
--- a/libelf/note_xlate.h
+++ b/libelf/note_xlate.h
@@ -46,13 +46,13 @@ elf_cvt_note (void *dest, const void *src, size_t len, int encode,
/* desc needs to be aligned. */
note_len += n->n_namesz;
note_len = nhdr8 ? NOTE_ALIGN8 (note_len) : NOTE_ALIGN4 (note_len);
- if (note_len > len || note_len < 8)
+ if (note_len > len || note_len < sizeof *n)
break;
/* data as a whole needs to be aligned. */
note_len += n->n_descsz;
note_len = nhdr8 ? NOTE_ALIGN8 (note_len) : NOTE_ALIGN4 (note_len);
- if (note_len > len || note_len < 8)
+ if (note_len > len || note_len < sizeof *n)
break;
/* Copy or skip the note data. */
diff --git a/po/ChangeLog b/po/ChangeLog
index 8f318aa7..2afb9b77 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+2019-02-14 Mark Wielaard <mark@klomp.org>
+
+ * *.po: Update for 0.176.
+
2018-06-11 Mark Wielaard <mark@klomp.org>
* *.po: Update for 0.172.
diff --git a/po/de.po b/po/de.po
index 88d7e6bc..e95201c9 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2018-11-16 12:42+0100\n"
+"POT-Creation-Date: 2019-02-14 14:31+0100\n"
"PO-Revision-Date: 2009-06-29 15:15+0200\n"
"Last-Translator: Michael Münch <micm@fedoraproject.org>\n"
"Language-Team: German\n"
@@ -55,7 +55,7 @@ msgstr ""
"auch nicht für Marktgängigkeit oder Eignung für einen Bestimmten Zweck.\n"
#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552
+#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
#, c-format
msgid "memory exhausted"
msgstr "Kein Speicher mehr verfügbar"
@@ -593,7 +593,7 @@ msgstr " Build ID: "
msgid " Linker version: %.*s\n"
msgstr ""
-#: libebl/eblobjnote.c:553
+#: libebl/eblobjnote.c:571
#, c-format
msgid " OS: %s, ABI: "
msgstr " OS: %s, ABI: "
@@ -715,8 +715,8 @@ msgstr "data/scn Unterschied"
msgid "invalid section header"
msgstr "ungültiger Abschnitts-Header"
-#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375
-#: src/readelf.c:10476 src/readelf.c:10658
+#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
+#: src/readelf.c:10491 src/readelf.c:10673
#, c-format
msgid "invalid data"
msgstr "Ungültige Daten"
@@ -3478,8 +3478,8 @@ msgstr "Kann Suchbaum nicht erstellen"
#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276
-#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467
+#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
+#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -3786,7 +3786,7 @@ msgstr ""
msgid "cannot get section: %s"
msgstr ""
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500
+#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
@@ -3800,8 +3800,8 @@ msgstr ""
msgid "cannot get section name"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465
-#: src/readelf.c:10643
+#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
+#: src/readelf.c:10658
#, c-format
msgid "cannot get %s content: %s"
msgstr ""
@@ -4153,8 +4153,8 @@ msgstr ""
msgid "<INVALID SECTION>"
msgstr ""
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371
-#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429
+#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
+#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
msgid "Couldn't uncompress section"
msgstr ""
@@ -4602,9 +4602,9 @@ msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr ""
#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306
-#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104
-#: src/readelf.c:10164
+#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
+#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
+#: src/readelf.c:10179
#, c-format
msgid ""
"\n"
@@ -4616,37 +4616,37 @@ msgstr ""
msgid "cannot get .debug_addr section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915
+#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928
+#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937
+#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947
+#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296
+#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
#, fuzzy, c-format
msgid "Unknown version"
msgstr "unbekannte Version"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942
+#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "Kein Adress-Wert"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952
+#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
#, c-format
msgid "unsupported segment size"
msgstr ""
@@ -4686,7 +4686,7 @@ msgid ""
msgstr ""
#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8896
+#: src/readelf.c:8911
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr ""
@@ -4735,39 +4735,39 @@ msgstr ""
msgid "cannot get .debug_rnglists content: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:5595 src/readelf.c:8902
+#: src/readelf.c:5595 src/readelf.c:8917
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5650 src/readelf.c:8957
+#: src/readelf.c:5650 src/readelf.c:8972
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5666 src/readelf.c:8973
+#: src/readelf.c:5666 src/readelf.c:8988
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8975
+#: src/readelf.c:5668 src/readelf.c:8990
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8981
+#: src/readelf.c:5674 src/readelf.c:8996
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:8992
+#: src/readelf.c:5685 src/readelf.c:9007
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:8996
+#: src/readelf.c:5689 src/readelf.c:9011
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " %s: %<PRId64>\n"
@@ -4777,7 +4777,7 @@ msgstr " %s: %<PRId64>\n"
msgid "invalid range list data"
msgstr "Ungültige Daten"
-#: src/readelf.c:5926 src/readelf.c:9284
+#: src/readelf.c:5926 src/readelf.c:9299
#, c-format
msgid ""
" %zu padding bytes\n"
@@ -4789,33 +4789,33 @@ msgstr ""
msgid "cannot get .debug_ranges content: %s"
msgstr ""
-#: src/readelf.c:5979 src/readelf.c:9339
+#: src/readelf.c:5979 src/readelf.c:9354
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9341
+#: src/readelf.c:5981 src/readelf.c:9356
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393
+#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6011 src/readelf.c:9473
+#: src/readelf.c:6011 src/readelf.c:9488
#, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr ""
-#: src/readelf.c:6019 src/readelf.c:9481
+#: src/readelf.c:6019 src/readelf.c:9496
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] %s..%s\n"
@@ -5040,138 +5040,138 @@ msgid ""
"Directory table:"
msgstr ""
-#: src/readelf.c:8395 src/readelf.c:8470
+#: src/readelf.c:8395 src/readelf.c:8472
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8464
+#: src/readelf.c:8466
msgid ""
"\n"
"File name table:"
msgstr ""
-#: src/readelf.c:8525
+#: src/readelf.c:8527
msgid " Entry Dir Time Size Name"
msgstr ""
-#: src/readelf.c:8560
+#: src/readelf.c:8564
msgid ""
"\n"
"Line number statements:"
msgstr ""
-#: src/readelf.c:8583
+#: src/readelf.c:8587
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:8617
+#: src/readelf.c:8621
#, c-format
msgid " special opcode %u: address+%u = "
msgstr ""
-#: src/readelf.c:8621
+#: src/readelf.c:8625
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8624
+#: src/readelf.c:8628
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8642
+#: src/readelf.c:8646
#, c-format
msgid " extended opcode %u: "
msgstr ""
-#: src/readelf.c:8647
+#: src/readelf.c:8651
msgid " end of sequence"
msgstr ""
-#: src/readelf.c:8665
+#: src/readelf.c:8669
#, fuzzy, c-format
msgid " set address to "
msgstr "Außerhalb des Adressbereiches"
-#: src/readelf.c:8693
+#: src/readelf.c:8697
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-#: src/readelf.c:8706
+#: src/readelf.c:8711
#, c-format
msgid " set discriminator to %u\n"
msgstr ""
#. Unknown, ignore it.
-#: src/readelf.c:8711
+#: src/readelf.c:8716
#, fuzzy
msgid " unknown opcode"
msgstr "unbekannter Typ"
#. Takes no argument.
-#: src/readelf.c:8723
+#: src/readelf.c:8728
msgid " copy"
msgstr ""
-#: src/readelf.c:8732
+#: src/readelf.c:8739
#, c-format
msgid " advance address by %u to "
msgstr ""
-#: src/readelf.c:8736 src/readelf.c:8792
+#: src/readelf.c:8743 src/readelf.c:8804
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8746
+#: src/readelf.c:8755
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr ""
-#: src/readelf.c:8754
+#: src/readelf.c:8765
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:8764
+#: src/readelf.c:8776
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:8771
+#: src/readelf.c:8783
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8777
+#: src/readelf.c:8789
msgid " set basic block flag"
msgstr ""
-#: src/readelf.c:8788
+#: src/readelf.c:8800
#, c-format
msgid " advance address by constant %u to "
msgstr ""
-#: src/readelf.c:8807
+#: src/readelf.c:8820
#, c-format
msgid " advance address by fixed value %u to \n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8817
+#: src/readelf.c:8830
msgid " set prologue end flag"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8822
+#: src/readelf.c:8835
msgid " set epilogue begin flag"
msgstr ""
-#: src/readelf.c:8831
+#: src/readelf.c:8845
#, c-format
msgid " set isa to %u\n"
msgstr ""
@@ -5179,103 +5179,103 @@ msgstr ""
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8840
+#: src/readelf.c:8854
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:8879
+#: src/readelf.c:8894
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s"
-#: src/readelf.c:9048
+#: src/readelf.c:9063
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "Ungültige Daten"
-#: src/readelf.c:9301
+#: src/readelf.c:9316
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ""
-#: src/readelf.c:9508 src/readelf.c:10552
+#: src/readelf.c:9523 src/readelf.c:10567
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:9563 src/readelf.c:9726
+#: src/readelf.c:9578 src/readelf.c:9741
#, c-format
msgid "cannot get macro information section data: %s"
msgstr ""
-#: src/readelf.c:9643
+#: src/readelf.c:9658
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr ""
-#: src/readelf.c:9666
+#: src/readelf.c:9681
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr ""
-#: src/readelf.c:9767
+#: src/readelf.c:9782
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9779
+#: src/readelf.c:9794
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9785 src/readelf.c:10672
+#: src/readelf.c:9800 src/readelf.c:10687
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9792
+#: src/readelf.c:9807
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9821
+#: src/readelf.c:9836
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:9829
+#: src/readelf.c:9844
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr ""
-#: src/readelf.c:9854
+#: src/readelf.c:9869
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr ""
-#: src/readelf.c:9861
+#: src/readelf.c:9876
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9873
+#: src/readelf.c:9888
#, c-format
msgid " %<PRIu8> arguments:"
msgstr ""
-#: src/readelf.c:9888
+#: src/readelf.c:9903
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10089
+#: src/readelf.c:10104
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
-#: src/readelf.c:10133
+#: src/readelf.c:10148
#, c-format
msgid ""
"\n"
@@ -5283,72 +5283,72 @@ msgid ""
" %*s String\n"
msgstr ""
-#: src/readelf.c:10148
+#: src/readelf.c:10163
#, c-format
msgid " *** error, missing string terminator\n"
msgstr ""
-#: src/readelf.c:10177
+#: src/readelf.c:10192
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:10276
+#: src/readelf.c:10291
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10278
+#: src/readelf.c:10293
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10292
+#: src/readelf.c:10307
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10301
+#: src/readelf.c:10316
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10355
+#: src/readelf.c:10370
#, c-format
msgid ""
"\n"
"Call frame search table section [%2zu] '.eh_frame_hdr':\n"
msgstr ""
-#: src/readelf.c:10457
+#: src/readelf.c:10472
#, c-format
msgid ""
"\n"
"Exception handling table section [%2zu] '.gcc_except_table':\n"
msgstr ""
-#: src/readelf.c:10480
+#: src/readelf.c:10495
#, c-format
msgid " LPStart encoding: %#x "
msgstr ""
-#: src/readelf.c:10492
+#: src/readelf.c:10507
#, c-format
msgid " TType encoding: %#x "
msgstr ""
-#: src/readelf.c:10507
+#: src/readelf.c:10522
#, c-format
msgid " Call site encoding: %#x "
msgstr ""
-#: src/readelf.c:10520
+#: src/readelf.c:10535
msgid ""
"\n"
" Call site table:"
msgstr ""
-#: src/readelf.c:10534
+#: src/readelf.c:10549
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5357,142 +5357,142 @@ msgid ""
" Action: %u\n"
msgstr ""
-#: src/readelf.c:10607
+#: src/readelf.c:10622
#, c-format
msgid "invalid TType encoding"
msgstr ""
-#: src/readelf.c:10634
+#: src/readelf.c:10649
#, c-format
msgid ""
"\n"
"GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n"
msgstr ""
-#: src/readelf.c:10663
+#: src/readelf.c:10678
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10681
+#: src/readelf.c:10696
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10688
+#: src/readelf.c:10703
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10695
+#: src/readelf.c:10710
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10702
+#: src/readelf.c:10717
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10709
+#: src/readelf.c:10724
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10723
+#: src/readelf.c:10738
#, c-format
msgid ""
"\n"
" CU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10748
+#: src/readelf.c:10763
#, c-format
msgid ""
"\n"
" TU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10777
+#: src/readelf.c:10792
#, c-format
msgid ""
"\n"
" Address list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10809
+#: src/readelf.c:10824
#, c-format
msgid ""
"\n"
" Symbol table at offset %#<PRIx32> contains %zu slots:\n"
msgstr ""
-#: src/readelf.c:10947
+#: src/readelf.c:10962
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr ""
-#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043
-#: src/readelf.c:12101
+#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
+#: src/readelf.c:12116
#, c-format
msgid "cannot convert core note data: %s"
msgstr ""
-#: src/readelf.c:11673
+#: src/readelf.c:11688
#, c-format
msgid ""
"\n"
"%*s... <repeats %u more times> ..."
msgstr ""
-#: src/readelf.c:12180
+#: src/readelf.c:12195
msgid " Owner Data size Type\n"
msgstr ""
-#: src/readelf.c:12209
+#: src/readelf.c:12224
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr ""
-#: src/readelf.c:12261
+#: src/readelf.c:12276
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "Konnte Inhalt von %s: %s nicht lesen"
-#: src/readelf.c:12288
+#: src/readelf.c:12303
#, c-format
msgid ""
"\n"
"Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12311
+#: src/readelf.c:12326
#, c-format
msgid ""
"\n"
"Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12358
+#: src/readelf.c:12373
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no data to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12385 src/readelf.c:12436
+#: src/readelf.c:12400 src/readelf.c:12451
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12390
+#: src/readelf.c:12405
#, c-format
msgid ""
"\n"
"Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12395
+#: src/readelf.c:12410
#, c-format
msgid ""
"\n"
@@ -5500,21 +5500,21 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12409
+#: src/readelf.c:12424
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no strings to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12441
+#: src/readelf.c:12456
#, c-format
msgid ""
"\n"
"String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12446
+#: src/readelf.c:12461
#, c-format
msgid ""
"\n"
@@ -5522,45 +5522,45 @@ msgid ""
"offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12495
+#: src/readelf.c:12510
#, c-format
msgid ""
"\n"
"section [%lu] does not exist"
msgstr ""
-#: src/readelf.c:12524
+#: src/readelf.c:12539
#, c-format
msgid ""
"\n"
"section '%s' does not exist"
msgstr ""
-#: src/readelf.c:12581
+#: src/readelf.c:12596
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr ""
-#: src/readelf.c:12584
+#: src/readelf.c:12599
#, c-format
msgid ""
"\n"
"Archive '%s' has no symbol index\n"
msgstr ""
-#: src/readelf.c:12588
+#: src/readelf.c:12603
#, c-format
msgid ""
"\n"
"Index of archive '%s' has %zu entries:\n"
msgstr ""
-#: src/readelf.c:12606
+#: src/readelf.c:12621
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:12611
+#: src/readelf.c:12626
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr ""
@@ -6463,7 +6463,7 @@ msgid ""
"was found, or . if FILE contains the debug information."
msgstr ""
-#: tests/backtrace.c:442
+#: tests/backtrace.c:437
msgid "Run executable"
msgstr ""
diff --git a/po/es.po b/po/es.po
index ad84e9e9..a4968a19 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils.master.es\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2018-11-16 12:42+0100\n"
+"POT-Creation-Date: 2019-02-14 14:31+0100\n"
"PO-Revision-Date: 2011-01-10 15:17-0300\n"
"Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz."
"com.ar>\n"
@@ -58,7 +58,7 @@ msgstr ""
"DETERMINADO.\n"
#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552
+#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
#, c-format
msgid "memory exhausted"
msgstr "memoria agotada"
@@ -591,7 +591,7 @@ msgstr " Build ID: "
msgid " Linker version: %.*s\n"
msgstr " Versión del Enlazador: %.*s\n"
-#: libebl/eblobjnote.c:553
+#: libebl/eblobjnote.c:571
#, c-format
msgid " OS: %s, ABI: "
msgstr " OS: %s, ABI: "
@@ -711,8 +711,8 @@ msgstr "no coinciden los datos/scn"
msgid "invalid section header"
msgstr "encabezamiento de sección inválida"
-#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375
-#: src/readelf.c:10476 src/readelf.c:10658
+#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
+#: src/readelf.c:10491 src/readelf.c:10673
#, c-format
msgid "invalid data"
msgstr "datos inválidos"
@@ -3778,8 +3778,8 @@ msgstr "No se puede crear el árbol de búsqueda"
#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276
-#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467
+#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
+#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -4097,7 +4097,7 @@ msgstr "no se pudieron determinar el número de secciones: %s"
msgid "cannot get section: %s"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500
+#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
@@ -4111,8 +4111,8 @@ msgstr "No se puede obtener encabezamiento de sección: %s"
msgid "cannot get section name"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465
-#: src/readelf.c:10643
+#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
+#: src/readelf.c:10658
#, c-format
msgid "cannot get %s content: %s"
msgstr "No se puede obtener el contenido %s: %s"
@@ -4493,8 +4493,8 @@ msgstr "<SÍMBOLO INVÁLIDO>"
msgid "<INVALID SECTION>"
msgstr "<SECCIÓN INVÁLIDA>"
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371
-#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429
+#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
+#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
msgid "Couldn't uncompress section"
msgstr ""
@@ -5024,9 +5024,9 @@ msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n"
#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306
-#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104
-#: src/readelf.c:10164
+#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
+#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
+#: src/readelf.c:10179
#, c-format
msgid ""
"\n"
@@ -5040,37 +5040,37 @@ msgstr ""
msgid "cannot get .debug_addr section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915
+#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928
+#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937
+#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947
+#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296
+#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
#, fuzzy, c-format
msgid "Unknown version"
msgstr "versión desconocida"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942
+#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "no hay valor de dirección"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952
+#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
#, c-format
msgid "unsupported segment size"
msgstr ""
@@ -5118,7 +5118,7 @@ msgstr ""
"Tabla en compensación %Zu:\n"
#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8896
+#: src/readelf.c:8911
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "Datos inválidos en sección [%zu] '%s'"
@@ -5167,39 +5167,39 @@ msgstr ""
msgid "cannot get .debug_rnglists content: %s"
msgstr "no se ha podido obtener contenido de .debug_ranges: %s"
-#: src/readelf.c:5595 src/readelf.c:8902
+#: src/readelf.c:5595 src/readelf.c:8917
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5650 src/readelf.c:8957
+#: src/readelf.c:5650 src/readelf.c:8972
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5666 src/readelf.c:8973
+#: src/readelf.c:5666 src/readelf.c:8988
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8975
+#: src/readelf.c:5668 src/readelf.c:8990
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8981
+#: src/readelf.c:5674 src/readelf.c:8996
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:8992
+#: src/readelf.c:5685 src/readelf.c:9007
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:8996
+#: src/readelf.c:5689 src/readelf.c:9011
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Propietario Tamaño\n"
@@ -5209,7 +5209,7 @@ msgstr " Propietario Tamaño\n"
msgid "invalid range list data"
msgstr "datos inválidos"
-#: src/readelf.c:5926 src/readelf.c:9284
+#: src/readelf.c:5926 src/readelf.c:9299
#, c-format
msgid ""
" %zu padding bytes\n"
@@ -5221,33 +5221,33 @@ msgstr ""
msgid "cannot get .debug_ranges content: %s"
msgstr "no se ha podido obtener contenido de .debug_ranges: %s"
-#: src/readelf.c:5979 src/readelf.c:9339
+#: src/readelf.c:5979 src/readelf.c:9354
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9341
+#: src/readelf.c:5981 src/readelf.c:9356
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393
+#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <DATOS INVÁLIDOS>\n"
-#: src/readelf.c:6011 src/readelf.c:9473
+#: src/readelf.c:6011 src/readelf.c:9488
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] (dirección base) %s\n"
-#: src/readelf.c:6019 src/readelf.c:9481
+#: src/readelf.c:6019 src/readelf.c:9496
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] lista vacía\n"
@@ -5509,12 +5509,12 @@ msgstr ""
"\n"
"Tabla de Directorio:"
-#: src/readelf.c:8395 src/readelf.c:8470
+#: src/readelf.c:8395 src/readelf.c:8472
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8464
+#: src/readelf.c:8466
#, fuzzy
msgid ""
"\n"
@@ -5523,7 +5523,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:8525
+#: src/readelf.c:8527
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5531,7 +5531,7 @@ msgstr ""
"Tabla de nombre de archivo:\n"
" Directorio de entrada Tiempo Tamaño Nombre"
-#: src/readelf.c:8560
+#: src/readelf.c:8564
msgid ""
"\n"
"Line number statements:"
@@ -5539,121 +5539,121 @@ msgstr ""
"\n"
" Declaraciones de número de Línea:"
-#: src/readelf.c:8583
+#: src/readelf.c:8587
#, fuzzy, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "longitud mínima inválida de tamaño de cadena coincidente"
-#: src/readelf.c:8617
+#: src/readelf.c:8621
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " opcode especial %u: dirección+%u = %s, línea%+d = %zu\n"
-#: src/readelf.c:8621
+#: src/readelf.c:8625
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
" opcode especial %u: dirección+%u = %s, op_index = %u, línea%+d = %zu\n"
-#: src/readelf.c:8624
+#: src/readelf.c:8628
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8642
+#: src/readelf.c:8646
#, c-format
msgid " extended opcode %u: "
msgstr " Código operativo extendido %u: "
-#: src/readelf.c:8647
+#: src/readelf.c:8651
#, fuzzy
msgid " end of sequence"
msgstr "Fin de secuencia"
-#: src/readelf.c:8665
+#: src/readelf.c:8669
#, fuzzy, c-format
msgid " set address to "
msgstr "Establecer dirección a %s\n"
-#: src/readelf.c:8693
+#: src/readelf.c:8697
#, fuzzy, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
"definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, nombre="
"%s\n"
-#: src/readelf.c:8706
+#: src/readelf.c:8711
#, c-format
msgid " set discriminator to %u\n"
msgstr " establecer discriminador a %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8711
+#: src/readelf.c:8716
#, fuzzy
msgid " unknown opcode"
msgstr "código operativo desconocido "
#. Takes no argument.
-#: src/readelf.c:8723
+#: src/readelf.c:8728
msgid " copy"
msgstr "Copiar"
-#: src/readelf.c:8732
+#: src/readelf.c:8739
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "Dirección de avance por %u a %s\n"
-#: src/readelf.c:8736 src/readelf.c:8792
+#: src/readelf.c:8743 src/readelf.c:8804
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8746
+#: src/readelf.c:8755
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " línea de avance por la constante %d a %<PRId64>\n"
-#: src/readelf.c:8754
+#: src/readelf.c:8765
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:8764
+#: src/readelf.c:8776
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " Establecer columna a %<PRIu64>\n"
-#: src/readelf.c:8771
+#: src/readelf.c:8783
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr "Establecer '%s' a %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8777
+#: src/readelf.c:8789
msgid " set basic block flag"
msgstr "Establecer bandera de bloque básico"
-#: src/readelf.c:8788
+#: src/readelf.c:8800
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "Dirección de avance por constante %u a %s\n"
-#: src/readelf.c:8807
+#: src/readelf.c:8820
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr "dirección de avance por valor corregido %u a %s\n"
#. Takes no argument.
-#: src/readelf.c:8817
+#: src/readelf.c:8830
msgid " set prologue end flag"
msgstr " Establecer bandera prologue_end"
#. Takes no argument.
-#: src/readelf.c:8822
+#: src/readelf.c:8835
msgid " set epilogue begin flag"
msgstr " Establecer bandera epilogue_begin"
-#: src/readelf.c:8831
+#: src/readelf.c:8845
#, c-format
msgid " set isa to %u\n"
msgstr " establecer isa para %u\n"
@@ -5661,105 +5661,105 @@ msgstr " establecer isa para %u\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8840
+#: src/readelf.c:8854
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " opcódigo con parámetro %<PRIu8> desconocido:"
msgstr[1] " opcódigo con parámetros %<PRIu8> desconocido:"
-#: src/readelf.c:8879
+#: src/readelf.c:8894
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "no es posible obtener contenido de .debug_loc: %s"
-#: src/readelf.c:9048
+#: src/readelf.c:9063
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "datos inválidos"
-#: src/readelf.c:9301
+#: src/readelf.c:9316
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "no es posible obtener contenido de .debug_loc: %s"
-#: src/readelf.c:9508 src/readelf.c:10552
+#: src/readelf.c:9523 src/readelf.c:10567
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÁLIDOS>\n"
-#: src/readelf.c:9563 src/readelf.c:9726
+#: src/readelf.c:9578 src/readelf.c:9741
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "no es posible obtener datos de la sección de macro información: %s"
-#: src/readelf.c:9643
+#: src/readelf.c:9658
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** cadena no finalizada al final de la sección"
-#: src/readelf.c:9666
+#: src/readelf.c:9681
#, fuzzy, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** cadena no finalizada al final de la sección"
-#: src/readelf.c:9767
+#: src/readelf.c:9782
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:9779
+#: src/readelf.c:9794
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9785 src/readelf.c:10672
+#: src/readelf.c:9800 src/readelf.c:10687
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9792
+#: src/readelf.c:9807
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:9821
+#: src/readelf.c:9836
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:9829
+#: src/readelf.c:9844
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:9854
+#: src/readelf.c:9869
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " opcódigo con parámetro %<PRIu8> desconocido:"
-#: src/readelf.c:9861
+#: src/readelf.c:9876
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9873
+#: src/readelf.c:9888
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] argumento %hhu \n"
-#: src/readelf.c:9888
+#: src/readelf.c:9903
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10089
+#: src/readelf.c:10104
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
" Compensación [%5d] DIE: %6<PRId64>, Compensación CU DIE: %6<PRId64>, "
"nombre: %s\n"
-#: src/readelf.c:10133
+#: src/readelf.c:10148
#, c-format
msgid ""
"\n"
@@ -5770,37 +5770,37 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" %*s String\n"
-#: src/readelf.c:10148
+#: src/readelf.c:10163
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** error en lectura de cadenas: %s\n"
-#: src/readelf.c:10177
+#: src/readelf.c:10192
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/readelf.c:10276
+#: src/readelf.c:10291
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10278
+#: src/readelf.c:10293
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10292
+#: src/readelf.c:10307
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10301
+#: src/readelf.c:10316
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10355
+#: src/readelf.c:10370
#, c-format
msgid ""
"\n"
@@ -5809,7 +5809,7 @@ msgstr ""
"\n"
"Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10457
+#: src/readelf.c:10472
#, c-format
msgid ""
"\n"
@@ -5818,22 +5818,22 @@ msgstr ""
"\n"
"Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10480
+#: src/readelf.c:10495
#, c-format
msgid " LPStart encoding: %#x "
msgstr "Codificación LPStart: %#x "
-#: src/readelf.c:10492
+#: src/readelf.c:10507
#, c-format
msgid " TType encoding: %#x "
msgstr "Codificación TType: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10522
#, c-format
msgid " Call site encoding: %#x "
msgstr "Codificación de sitio de llamada: %#x "
-#: src/readelf.c:10520
+#: src/readelf.c:10535
msgid ""
"\n"
" Call site table:"
@@ -5841,7 +5841,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:10534
+#: src/readelf.c:10549
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5854,12 +5854,12 @@ msgstr ""
" Landing pad: %#<PRIx64>\n"
" Action: %u\n"
-#: src/readelf.c:10607
+#: src/readelf.c:10622
#, c-format
msgid "invalid TType encoding"
msgstr "Codificación TType inválida"
-#: src/readelf.c:10634
+#: src/readelf.c:10649
#, fuzzy, c-format
msgid ""
"\n"
@@ -5868,37 +5868,37 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10663
+#: src/readelf.c:10678
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10681
+#: src/readelf.c:10696
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10688
+#: src/readelf.c:10703
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10695
+#: src/readelf.c:10710
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10702
+#: src/readelf.c:10717
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10709
+#: src/readelf.c:10724
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10723
+#: src/readelf.c:10738
#, fuzzy, c-format
msgid ""
"\n"
@@ -5907,7 +5907,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10748
+#: src/readelf.c:10763
#, fuzzy, c-format
msgid ""
"\n"
@@ -5916,7 +5916,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10777
+#: src/readelf.c:10792
#, fuzzy, c-format
msgid ""
"\n"
@@ -5925,7 +5925,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10809
+#: src/readelf.c:10824
#, fuzzy, c-format
msgid ""
"\n"
@@ -5934,18 +5934,18 @@ msgstr ""
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
-#: src/readelf.c:10947
+#: src/readelf.c:10962
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "no se puede depurar descriptor de contexto: %s"
-#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043
-#: src/readelf.c:12101
+#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
+#: src/readelf.c:12116
#, c-format
msgid "cannot convert core note data: %s"
msgstr "no es posible convertir datos de la nota principal: %s"
-#: src/readelf.c:11673
+#: src/readelf.c:11688
#, c-format
msgid ""
"\n"
@@ -5954,21 +5954,21 @@ msgstr ""
"\n"
"%*s... <repeats %u more times> ..."
-#: src/readelf.c:12180
+#: src/readelf.c:12195
msgid " Owner Data size Type\n"
msgstr " Owner Data size Type\n"
-#: src/readelf.c:12209
+#: src/readelf.c:12224
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12261
+#: src/readelf.c:12276
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "no se puede obtener el contenido de sección de nota: %s"
-#: src/readelf.c:12288
+#: src/readelf.c:12303
#, c-format
msgid ""
"\n"
@@ -5977,7 +5977,7 @@ msgstr ""
"\n"
"Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12311
+#: src/readelf.c:12326
#, c-format
msgid ""
"\n"
@@ -5986,7 +5986,7 @@ msgstr ""
"\n"
"Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12358
+#: src/readelf.c:12373
#, fuzzy, c-format
msgid ""
"\n"
@@ -5995,12 +5995,12 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12385 src/readelf.c:12436
+#: src/readelf.c:12400 src/readelf.c:12451
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "no se pueden obtener datos para sección [%Zu] '%s': %s"
-#: src/readelf.c:12390
+#: src/readelf.c:12405
#, fuzzy, c-format
msgid ""
"\n"
@@ -6010,7 +6010,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12395
+#: src/readelf.c:12410
#, fuzzy, c-format
msgid ""
"\n"
@@ -6021,7 +6021,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12409
+#: src/readelf.c:12424
#, fuzzy, c-format
msgid ""
"\n"
@@ -6030,7 +6030,7 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12441
+#: src/readelf.c:12456
#, fuzzy, c-format
msgid ""
"\n"
@@ -6040,7 +6040,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12446
+#: src/readelf.c:12461
#, fuzzy, c-format
msgid ""
"\n"
@@ -6051,7 +6051,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12495
+#: src/readelf.c:12510
#, c-format
msgid ""
"\n"
@@ -6060,7 +6060,7 @@ msgstr ""
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:12524
+#: src/readelf.c:12539
#, c-format
msgid ""
"\n"
@@ -6069,12 +6069,12 @@ msgstr ""
"\n"
"sección '%s' no existe"
-#: src/readelf.c:12581
+#: src/readelf.c:12596
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "no se puede obtener el índice de símbolo de archivo '%s': %s"
-#: src/readelf.c:12584
+#: src/readelf.c:12599
#, c-format
msgid ""
"\n"
@@ -6083,7 +6083,7 @@ msgstr ""
"\n"
"Archivo '%s' no tiene índice de símbolo\n"
-#: src/readelf.c:12588
+#: src/readelf.c:12603
#, fuzzy, c-format
msgid ""
"\n"
@@ -6092,12 +6092,12 @@ msgstr ""
"\n"
"Índice de archivo '%s' tiene %Zu entradas:\n"
-#: src/readelf.c:12606
+#: src/readelf.c:12621
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "no es posible extraer miembro en compensación %Zu en '%s': %s"
-#: src/readelf.c:12611
+#: src/readelf.c:12626
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Miembro de archivo contiene '%s':\n"
@@ -7047,7 +7047,7 @@ msgstr ""
"file. DEBUGFILE is the separate debuginfo file name, or - if no debuginfo "
"was found, or . if FILE contains the debug information."
-#: tests/backtrace.c:442
+#: tests/backtrace.c:437
msgid "Run executable"
msgstr ""
diff --git a/po/ja.po b/po/ja.po
index fc47ba20..1dfb89eb 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ja\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2018-11-16 12:42+0100\n"
+"POT-Creation-Date: 2019-02-14 14:31+0100\n"
"PO-Revision-Date: 2009-09-20 15:32+0900\n"
"Last-Translator: Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>\n"
"Language-Team: Japanese <jp@li.org>\n"
@@ -51,7 +51,7 @@ msgstr ""
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552
+#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
#, c-format
msgid "memory exhausted"
msgstr "メモリー消費済み"
@@ -590,7 +590,7 @@ msgstr " ビルト ID: "
msgid " Linker version: %.*s\n"
msgstr ""
-#: libebl/eblobjnote.c:553
+#: libebl/eblobjnote.c:571
#, c-format
msgid " OS: %s, ABI: "
msgstr " OS: %s、ABI: "
@@ -711,8 +711,8 @@ msgstr "データ/scnが不整合です"
msgid "invalid section header"
msgstr "不当なセクションヘッダー"
-#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375
-#: src/readelf.c:10476 src/readelf.c:10658
+#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
+#: src/readelf.c:10491 src/readelf.c:10673
#, c-format
msgid "invalid data"
msgstr "不当なデータ"
@@ -3557,8 +3557,8 @@ msgstr "検索ツリーを生成できません"
#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276
-#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467
+#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
+#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -3871,7 +3871,7 @@ msgstr "セクション数を決定できません: %s"
msgid "cannot get section: %s"
msgstr "セクションを得られません: %s"
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500
+#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
@@ -3885,8 +3885,8 @@ msgstr "セクションヘッダーを得られません: %s"
msgid "cannot get section name"
msgstr "セクションを得られません: %s"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465
-#: src/readelf.c:10643
+#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
+#: src/readelf.c:10658
#, c-format
msgid "cannot get %s content: %s"
msgstr "%s の内容を得られません: %s"
@@ -4262,8 +4262,8 @@ msgstr "<不当なシンボル>"
msgid "<INVALID SECTION>"
msgstr "<不当なセクション>"
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371
-#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429
+#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
+#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
msgid "Couldn't uncompress section"
msgstr ""
@@ -4749,9 +4749,9 @@ msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] オフセット: %<PRId64>、子: %s、タグ: %s\n"
#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306
-#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104
-#: src/readelf.c:10164
+#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
+#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
+#: src/readelf.c:10179
#, c-format
msgid ""
"\n"
@@ -4765,37 +4765,37 @@ msgstr ""
msgid "cannot get .debug_addr section data: %s"
msgstr "セクションデータを割り当てられません: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915
+#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928
+#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937
+#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947
+#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " ファイルを %<PRIu64> に設定する\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296
+#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
#, fuzzy, c-format
msgid "Unknown version"
msgstr "不明なバージョン"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942
+#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "アドレス値ではありません"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952
+#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
#, c-format
msgid "unsupported segment size"
msgstr ""
@@ -4840,7 +4840,7 @@ msgstr ""
"オフセット %Zu のテーブル:\n"
#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8896
+#: src/readelf.c:8911
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "セクション [%zu] '%s' の不当なデータ"
@@ -4889,39 +4889,39 @@ msgstr ""
msgid "cannot get .debug_rnglists content: %s"
msgstr ".degub_ranges の内容を得られません: %s"
-#: src/readelf.c:5595 src/readelf.c:8902
+#: src/readelf.c:5595 src/readelf.c:8917
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5650 src/readelf.c:8957
+#: src/readelf.c:5650 src/readelf.c:8972
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5666 src/readelf.c:8973
+#: src/readelf.c:5666 src/readelf.c:8988
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8975
+#: src/readelf.c:5668 src/readelf.c:8990
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8981
+#: src/readelf.c:5674 src/readelf.c:8996
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:8992
+#: src/readelf.c:5685 src/readelf.c:9007
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:8996
+#: src/readelf.c:5689 src/readelf.c:9011
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " 所有者 大きさ\n"
@@ -4931,7 +4931,7 @@ msgstr " 所有者 大きさ\n"
msgid "invalid range list data"
msgstr "不当なデータ"
-#: src/readelf.c:5926 src/readelf.c:9284
+#: src/readelf.c:5926 src/readelf.c:9299
#, c-format
msgid ""
" %zu padding bytes\n"
@@ -4943,33 +4943,33 @@ msgstr ""
msgid "cannot get .debug_ranges content: %s"
msgstr ".degub_ranges の内容を得られません: %s"
-#: src/readelf.c:5979 src/readelf.c:9339
+#: src/readelf.c:5979 src/readelf.c:9354
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9341
+#: src/readelf.c:5981 src/readelf.c:9356
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393
+#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <不当なデータ>\n"
-#: src/readelf.c:6011 src/readelf.c:9473
+#: src/readelf.c:6011 src/readelf.c:9488
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] ベースアドレス %s\n"
-#: src/readelf.c:6019 src/readelf.c:9481
+#: src/readelf.c:6019 src/readelf.c:9496
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr ""
@@ -5229,12 +5229,12 @@ msgstr ""
"\n"
"ディレクトリーテーブル:"
-#: src/readelf.c:8395 src/readelf.c:8470
+#: src/readelf.c:8395 src/readelf.c:8472
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8464
+#: src/readelf.c:8466
#, fuzzy
msgid ""
"\n"
@@ -5243,7 +5243,7 @@ msgstr ""
"\n"
" 呼出しサイトテーブル:"
-#: src/readelf.c:8525
+#: src/readelf.c:8527
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5251,7 +5251,7 @@ msgstr ""
"ファイル名テーブル:\n"
" Entry Dir 時刻 大きさ 名前"
-#: src/readelf.c:8560
+#: src/readelf.c:8564
msgid ""
"\n"
"Line number statements:"
@@ -5259,119 +5259,119 @@ msgstr ""
"\n"
"行 番号 文:"
-#: src/readelf.c:8583
+#: src/readelf.c:8587
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:8617
+#: src/readelf.c:8621
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:8621
+#: src/readelf.c:8625
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:8624
+#: src/readelf.c:8628
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8642
+#: src/readelf.c:8646
#, c-format
msgid " extended opcode %u: "
msgstr " 拡張命令コード %u: "
-#: src/readelf.c:8647
+#: src/readelf.c:8651
#, fuzzy
msgid " end of sequence"
msgstr "列の終わり"
-#: src/readelf.c:8665
+#: src/readelf.c:8669
#, fuzzy, c-format
msgid " set address to "
msgstr "アドレスを %s に設定する\n"
-#: src/readelf.c:8693
+#: src/readelf.c:8697
#, fuzzy, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
"新ファイルを定義する: dir=%u、mtime=%<PRIu64>、長さh=%<PRIu64>、名前=%s\n"
-#: src/readelf.c:8706
+#: src/readelf.c:8711
#, fuzzy, c-format
msgid " set discriminator to %u\n"
msgstr "カラムを %<PRIu64> に設定する\n"
#. Unknown, ignore it.
-#: src/readelf.c:8711
+#: src/readelf.c:8716
#, fuzzy
msgid " unknown opcode"
msgstr "不明な命令コード"
#. Takes no argument.
-#: src/readelf.c:8723
+#: src/readelf.c:8728
msgid " copy"
msgstr "複写"
-#: src/readelf.c:8732
+#: src/readelf.c:8739
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "アドレスを %u だけ進めて %s にする\n"
-#: src/readelf.c:8736 src/readelf.c:8792
+#: src/readelf.c:8743 src/readelf.c:8804
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8746
+#: src/readelf.c:8755
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr "行を定数 %d だけ進めて %<PRId64> にする\n"
-#: src/readelf.c:8754
+#: src/readelf.c:8765
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ファイルを %<PRIu64> に設定する\n"
-#: src/readelf.c:8764
+#: src/readelf.c:8776
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr "カラムを %<PRIu64> に設定する\n"
-#: src/readelf.c:8771
+#: src/readelf.c:8783
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " '%s' を %<PRIuFAST8> に設定する\n"
#. Takes no argument.
-#: src/readelf.c:8777
+#: src/readelf.c:8789
msgid " set basic block flag"
msgstr "基本ブロックフラグを設定する"
-#: src/readelf.c:8788
+#: src/readelf.c:8800
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "アドレスを定数 %u だけ済めて %s にする\n"
-#: src/readelf.c:8807
+#: src/readelf.c:8820
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr "アドレスを固定値 %u だけ進めて %s にする\n"
#. Takes no argument.
-#: src/readelf.c:8817
+#: src/readelf.c:8830
msgid " set prologue end flag"
msgstr "プロローグ終了フラグを設定する"
#. Takes no argument.
-#: src/readelf.c:8822
+#: src/readelf.c:8835
msgid " set epilogue begin flag"
msgstr "エピローグ開始フラグを設定する"
-#: src/readelf.c:8831
+#: src/readelf.c:8845
#, fuzzy, c-format
msgid " set isa to %u\n"
msgstr " ファイルを %<PRIu64> に設定する\n"
@@ -5379,98 +5379,98 @@ msgstr " ファイルを %<PRIu64> に設定する\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8840
+#: src/readelf.c:8854
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " %<PRIu8> 個のパラメーターのある不明な命令コード:"
-#: src/readelf.c:8879
+#: src/readelf.c:8894
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr ".debug_loc の内容を得られません: %s"
-#: src/readelf.c:9048
+#: src/readelf.c:9063
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "不当なデータ"
-#: src/readelf.c:9301
+#: src/readelf.c:9316
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ".debug_loc の内容を得られません: %s"
-#: src/readelf.c:9508 src/readelf.c:10552
+#: src/readelf.c:9523 src/readelf.c:10567
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <不当なデータ>\n"
-#: src/readelf.c:9563 src/readelf.c:9726
+#: src/readelf.c:9578 src/readelf.c:9741
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "マクロ情報セクションのデータを得られません: %s"
-#: src/readelf.c:9643
+#: src/readelf.c:9658
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** 最後のセクションの終端していない文字列"
-#: src/readelf.c:9666
+#: src/readelf.c:9681
#, fuzzy, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** 最後のセクションの終端していない文字列"
-#: src/readelf.c:9767
+#: src/readelf.c:9782
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " 所有者 大きさ\n"
-#: src/readelf.c:9779
+#: src/readelf.c:9794
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9785 src/readelf.c:10672
+#: src/readelf.c:9800 src/readelf.c:10687
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9792
+#: src/readelf.c:9807
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " 入口点アドレス : %#<PRIx64>\n"
-#: src/readelf.c:9821
+#: src/readelf.c:9836
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:9829
+#: src/readelf.c:9844
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:9854
+#: src/readelf.c:9869
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " %<PRIu8> 個のパラメーターのある不明な命令コード:"
-#: src/readelf.c:9861
+#: src/readelf.c:9876
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9873
+#: src/readelf.c:9888
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:9888
+#: src/readelf.c:9903
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10089
+#: src/readelf.c:10104
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
@@ -5478,7 +5478,7 @@ msgstr ""
# # "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
# # " %4$*s 文字列\n" がエラーになるのは何故? 取り敢えず fuzzy扱い
-#: src/readelf.c:10133
+#: src/readelf.c:10148
#, fuzzy, c-format
msgid ""
"\n"
@@ -5489,37 +5489,37 @@ msgstr ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
" %4$*s 文字列\n"
-#: src/readelf.c:10148
+#: src/readelf.c:10163
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** 文字列の読込み中にエラー: %s\n"
-#: src/readelf.c:10177
+#: src/readelf.c:10192
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr ".degub_ranges の内容を得られません: %s"
-#: src/readelf.c:10276
+#: src/readelf.c:10291
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10278
+#: src/readelf.c:10293
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10292
+#: src/readelf.c:10307
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10301
+#: src/readelf.c:10316
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10355
+#: src/readelf.c:10370
#, c-format
msgid ""
"\n"
@@ -5528,7 +5528,7 @@ msgstr ""
"\n"
"呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10457
+#: src/readelf.c:10472
#, c-format
msgid ""
"\n"
@@ -5537,22 +5537,22 @@ msgstr ""
"\n"
"例外取扱いテーブルセクション [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10480
+#: src/readelf.c:10495
#, c-format
msgid " LPStart encoding: %#x "
msgstr " LPStart コード化: %#x "
-#: src/readelf.c:10492
+#: src/readelf.c:10507
#, c-format
msgid " TType encoding: %#x "
msgstr "TType コード化: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10522
#, c-format
msgid " Call site encoding: %#x "
msgstr "呼出しサイトコード化: %#x "
-#: src/readelf.c:10520
+#: src/readelf.c:10535
msgid ""
"\n"
" Call site table:"
@@ -5560,7 +5560,7 @@ msgstr ""
"\n"
" 呼出しサイトテーブル:"
-#: src/readelf.c:10534
+#: src/readelf.c:10549
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5573,12 +5573,12 @@ msgstr ""
" 離着陸場: %#<PRIx64>\n"
" 行動: %u\n"
-#: src/readelf.c:10607
+#: src/readelf.c:10622
#, c-format
msgid "invalid TType encoding"
msgstr "不当な TType コード化"
-#: src/readelf.c:10634
+#: src/readelf.c:10649
#, fuzzy, c-format
msgid ""
"\n"
@@ -5588,37 +5588,37 @@ msgstr ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
"目があります:\n"
-#: src/readelf.c:10663
+#: src/readelf.c:10678
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10681
+#: src/readelf.c:10696
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10688
+#: src/readelf.c:10703
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10695
+#: src/readelf.c:10710
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10702
+#: src/readelf.c:10717
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10709
+#: src/readelf.c:10724
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10723
+#: src/readelf.c:10738
#, fuzzy, c-format
msgid ""
"\n"
@@ -5628,7 +5628,7 @@ msgstr ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
"目があります:\n"
-#: src/readelf.c:10748
+#: src/readelf.c:10763
#, fuzzy, c-format
msgid ""
"\n"
@@ -5638,7 +5638,7 @@ msgstr ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
"目があります:\n"
-#: src/readelf.c:10777
+#: src/readelf.c:10792
#, fuzzy, c-format
msgid ""
"\n"
@@ -5648,7 +5648,7 @@ msgstr ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
"目があります:\n"
-#: src/readelf.c:10809
+#: src/readelf.c:10824
#, fuzzy, c-format
msgid ""
"\n"
@@ -5657,18 +5657,18 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> に不当なシンボルテーブル\n"
-#: src/readelf.c:10947
+#: src/readelf.c:10962
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "デバッグ内容記述子を得られません: %s"
-#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043
-#: src/readelf.c:12101
+#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
+#: src/readelf.c:12116
#, c-format
msgid "cannot convert core note data: %s"
msgstr "コアノートデータの変換ができません: %s"
-#: src/readelf.c:11673
+#: src/readelf.c:11688
#, c-format
msgid ""
"\n"
@@ -5677,21 +5677,21 @@ msgstr ""
"\n"
"%*s... < %u 回の繰返し> ..."
-#: src/readelf.c:12180
+#: src/readelf.c:12195
msgid " Owner Data size Type\n"
msgstr " 所有者 データ大きさタイプ\n"
-#: src/readelf.c:12209
+#: src/readelf.c:12224
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12261
+#: src/readelf.c:12276
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "ノートセクションの内容を得られません: %s"
-#: src/readelf.c:12288
+#: src/readelf.c:12303
#, c-format
msgid ""
"\n"
@@ -5701,7 +5701,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのノートセクション [%1$2zu] "
"'%2$s':\n"
-#: src/readelf.c:12311
+#: src/readelf.c:12326
#, c-format
msgid ""
"\n"
@@ -5710,7 +5710,7 @@ msgstr ""
"\n"
"オフセット %2$#0<PRIx64> の %1$<PRIu64> バイトのノートセグメント:\n"
-#: src/readelf.c:12358
+#: src/readelf.c:12373
#, fuzzy, c-format
msgid ""
"\n"
@@ -5719,12 +5719,12 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
-#: src/readelf.c:12385 src/readelf.c:12436
+#: src/readelf.c:12400 src/readelf.c:12451
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "セクション [%Zu] '%s' からデータが得られません: %s"
-#: src/readelf.c:12390
+#: src/readelf.c:12405
#, fuzzy, c-format
msgid ""
"\n"
@@ -5734,7 +5734,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダン"
"プ、%3$<PRIu64> バイト:\n"
-#: src/readelf.c:12395
+#: src/readelf.c:12410
#, fuzzy, c-format
msgid ""
"\n"
@@ -5745,7 +5745,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダン"
"プ、%3$<PRIu64> バイト:\n"
-#: src/readelf.c:12409
+#: src/readelf.c:12424
#, fuzzy, c-format
msgid ""
"\n"
@@ -5754,7 +5754,7 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
-#: src/readelf.c:12441
+#: src/readelf.c:12456
#, fuzzy, c-format
msgid ""
"\n"
@@ -5764,7 +5764,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
"イトあります:\n"
-#: src/readelf.c:12446
+#: src/readelf.c:12461
#, fuzzy, c-format
msgid ""
"\n"
@@ -5775,7 +5775,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
"イトあります:\n"
-#: src/readelf.c:12495
+#: src/readelf.c:12510
#, c-format
msgid ""
"\n"
@@ -5784,7 +5784,7 @@ msgstr ""
"\n"
"セクション [%lu] がありません"
-#: src/readelf.c:12524
+#: src/readelf.c:12539
#, c-format
msgid ""
"\n"
@@ -5793,12 +5793,12 @@ msgstr ""
"\n"
"セクション '%s' がありません"
-#: src/readelf.c:12581
+#: src/readelf.c:12596
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "アーカイブのシンボル索引 '%s' を得られません: %s"
-#: src/readelf.c:12584
+#: src/readelf.c:12599
#, c-format
msgid ""
"\n"
@@ -5807,7 +5807,7 @@ msgstr ""
"\n"
"アーカイブ '%s' にはシンボル索引がありません\n"
-#: src/readelf.c:12588
+#: src/readelf.c:12603
#, fuzzy, c-format
msgid ""
"\n"
@@ -5816,12 +5816,12 @@ msgstr ""
"\n"
"アーカイブ '%s' の索引には %Zu 項目あります:\n"
-#: src/readelf.c:12606
+#: src/readelf.c:12621
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "'%2$s' の オフセット %1$Zu のメンバーを抽出できません: %3$s"
-#: src/readelf.c:12611
+#: src/readelf.c:12626
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "アーカイブメンバー '%s' には以下があります:\n"
@@ -6728,7 +6728,7 @@ msgid ""
"was found, or . if FILE contains the debug information."
msgstr ""
-#: tests/backtrace.c:442
+#: tests/backtrace.c:437
msgid "Run executable"
msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 546fe3e3..6fb2f3eb 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2018-11-16 12:42+0100\n"
+"POT-Creation-Date: 2019-02-14 14:31+0100\n"
"PO-Revision-Date: 2016-12-29 17:48+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
@@ -60,7 +60,7 @@ msgstr ""
"HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n"
#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552
+#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
#, c-format
msgid "memory exhausted"
msgstr "pamięć wyczerpana"
@@ -586,7 +586,7 @@ msgstr " Identyfikator kopii: "
msgid " Linker version: %.*s\n"
msgstr " Wersja konsolidatora: %.*s\n"
-#: libebl/eblobjnote.c:553
+#: libebl/eblobjnote.c:571
#, c-format
msgid " OS: %s, ABI: "
msgstr " System operacyjny: %s, ABI: "
@@ -706,8 +706,8 @@ msgstr "dane/scn nie zgadzają się"
msgid "invalid section header"
msgstr "nieprawidłowy nagłówek sekcji"
-#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375
-#: src/readelf.c:10476 src/readelf.c:10658
+#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
+#: src/readelf.c:10491 src/readelf.c:10673
#, c-format
msgid "invalid data"
msgstr "nieprawidłowe dane"
@@ -3696,8 +3696,8 @@ msgstr "nie można utworzyć drzewa wyszukiwania"
#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276
-#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467
+#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
+#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -4012,7 +4012,7 @@ msgstr "nie można określić liczby sekcji: %s"
msgid "cannot get section: %s"
msgstr "nie można uzyskać sekcji: %s"
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500
+#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
@@ -4026,8 +4026,8 @@ msgstr "nie można uzyskać nagłówka sekcji: %s"
msgid "cannot get section name"
msgstr "nie można uzyskać nazwy sekcji"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465
-#: src/readelf.c:10643
+#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
+#: src/readelf.c:10658
#, c-format
msgid "cannot get %s content: %s"
msgstr "nie można uzyskać zwartości %s: %s"
@@ -4414,8 +4414,8 @@ msgstr "<NIEPRAWIDŁOWY SYMBOL>"
msgid "<INVALID SECTION>"
msgstr "<NIEPRAWIDŁOWY SEKCJA>"
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371
-#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429
+#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
+#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
msgid "Couldn't uncompress section"
msgstr "Nie można dekompresować sekcji"
@@ -4982,9 +4982,9 @@ msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n"
#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306
-#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104
-#: src/readelf.c:10164
+#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
+#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
+#: src/readelf.c:10179
#, c-format
msgid ""
"\n"
@@ -4998,41 +4998,41 @@ msgstr ""
msgid "cannot get .debug_addr section data: %s"
msgstr "nie można uzyskać danych sekcji: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915
+#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928
+#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937
+#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " Offset adresu: %6<PRIu64>\n"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947
+#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr ""
" Rozmiar segmentu: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296
+#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
#, fuzzy, c-format
msgid "Unknown version"
msgstr "nieznana wersja"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942
+#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
#, c-format
msgid "unsupported address size"
msgstr "nieobsługiwany rozmiar adresu"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952
+#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
#, c-format
msgid "unsupported segment size"
msgstr "nieobsługiwany rozmiar segmentu"
@@ -5083,7 +5083,7 @@ msgstr ""
"Tabela pod offsetem %zu:\n"
#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8896
+#: src/readelf.c:8911
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "nieprawidłowe dane w sekcji [%zu] „%s”"
@@ -5136,39 +5136,39 @@ msgstr " bajty wypełnienia: %zu\n"
msgid "cannot get .debug_rnglists content: %s"
msgstr "nie można uzyskać zawartości .debug_ranges: %s"
-#: src/readelf.c:5595 src/readelf.c:8902
+#: src/readelf.c:5595 src/readelf.c:8917
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:5650 src/readelf.c:8957
+#: src/readelf.c:5650 src/readelf.c:8972
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:5666 src/readelf.c:8973
+#: src/readelf.c:5666 src/readelf.c:8988
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8975
+#: src/readelf.c:5668 src/readelf.c:8990
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8981
+#: src/readelf.c:5674 src/readelf.c:8996
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:8992
+#: src/readelf.c:5685 src/readelf.c:9007
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:8996
+#: src/readelf.c:5689 src/readelf.c:9011
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Offset: 0x%<PRIx64>\n"
@@ -5178,7 +5178,7 @@ msgstr " Offset: 0x%<PRIx64>\n"
msgid "invalid range list data"
msgstr "nieprawidłowe dane"
-#: src/readelf.c:5926 src/readelf.c:9284
+#: src/readelf.c:5926 src/readelf.c:9299
#, fuzzy, c-format
msgid ""
" %zu padding bytes\n"
@@ -5190,33 +5190,33 @@ msgstr " bajty wypełnienia: %zu\n"
msgid "cannot get .debug_ranges content: %s"
msgstr "nie można uzyskać zawartości .debug_ranges: %s"
-#: src/readelf.c:5979 src/readelf.c:9339
+#: src/readelf.c:5979 src/readelf.c:9354
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9341
+#: src/readelf.c:5981 src/readelf.c:9356
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393
+#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <NIEPRAWIDŁOWE DANE>\n"
-#: src/readelf.c:6011 src/readelf.c:9473
+#: src/readelf.c:6011 src/readelf.c:9488
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] adres podstawowy %s\n"
-#: src/readelf.c:6019 src/readelf.c:9481
+#: src/readelf.c:6019 src/readelf.c:9496
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] pusta lista\n"
@@ -5477,12 +5477,12 @@ msgstr ""
"\n"
"Tabela katalogu:"
-#: src/readelf.c:8395 src/readelf.c:8470
+#: src/readelf.c:8395 src/readelf.c:8472
#, fuzzy, c-format
msgid " ["
msgstr " PC: "
-#: src/readelf.c:8464
+#: src/readelf.c:8466
#, fuzzy
msgid ""
"\n"
@@ -5491,7 +5491,7 @@ msgstr ""
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:8525
+#: src/readelf.c:8527
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5499,7 +5499,7 @@ msgstr ""
"Tabela nazw plików:\n"
" Wpis Kat Czas Rozmiar Nazwa"
-#: src/readelf.c:8560
+#: src/readelf.c:8564
msgid ""
"\n"
"Line number statements:"
@@ -5507,119 +5507,119 @@ msgstr ""
"\n"
"Instrukcje numerów wierszy:"
-#: src/readelf.c:8583
+#: src/readelf.c:8587
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "nieprawidłowe maksimum operacji na instrukcję wynosi zero"
-#: src/readelf.c:8617
+#: src/readelf.c:8621
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " instrukcja specjalna %u: adres+%u = %s, wiersz%+d = %zu\n"
-#: src/readelf.c:8621
+#: src/readelf.c:8625
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
" instrukcja specjalna %u: adres+%u = %s, op_index = %u, wiersz%+d = %zu\n"
-#: src/readelf.c:8624
+#: src/readelf.c:8628
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8642
+#: src/readelf.c:8646
#, c-format
msgid " extended opcode %u: "
msgstr " instrukcja rozszerzona %u: "
-#: src/readelf.c:8647
+#: src/readelf.c:8651
msgid " end of sequence"
msgstr " koniec sekwencji"
-#: src/readelf.c:8665
+#: src/readelf.c:8669
#, fuzzy, c-format
msgid " set address to "
msgstr " ustawienie adresu na %s\n"
-#: src/readelf.c:8693
+#: src/readelf.c:8697
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
" definicja nowego pliku: dir=%u, mtime=%<PRIu64>, długość=%<PRIu64>, nazwa="
"%s\n"
-#: src/readelf.c:8706
+#: src/readelf.c:8711
#, c-format
msgid " set discriminator to %u\n"
msgstr " ustawienie dyskryminatora na %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8711
+#: src/readelf.c:8716
msgid " unknown opcode"
msgstr " nieznana instrukcja"
#. Takes no argument.
-#: src/readelf.c:8723
+#: src/readelf.c:8728
msgid " copy"
msgstr " kopiowanie"
-#: src/readelf.c:8732
+#: src/readelf.c:8739
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr " zwiększenie adresu o %u do %s\n"
-#: src/readelf.c:8736 src/readelf.c:8792
+#: src/readelf.c:8743 src/readelf.c:8804
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8746
+#: src/readelf.c:8755
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " zwiększenie wiersza o stałą %d do %<PRId64>\n"
-#: src/readelf.c:8754
+#: src/readelf.c:8765
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:8764
+#: src/readelf.c:8776
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " ustawienie kolumny na %<PRIu64>\n"
-#: src/readelf.c:8771
+#: src/readelf.c:8783
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " ustawienie „%s” na %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8777
+#: src/readelf.c:8789
msgid " set basic block flag"
msgstr " ustawienie podstawowej flagi bloku"
-#: src/readelf.c:8788
+#: src/readelf.c:8800
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr " zwiększenie adresu o stałą %u do %s\n"
-#: src/readelf.c:8807
+#: src/readelf.c:8820
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr " zwiększenie adresu o stałą wartość %u do %s\n"
#. Takes no argument.
-#: src/readelf.c:8817
+#: src/readelf.c:8830
msgid " set prologue end flag"
msgstr " ustawienie flagi końca prologu"
#. Takes no argument.
-#: src/readelf.c:8822
+#: src/readelf.c:8835
msgid " set epilogue begin flag"
msgstr " ustawienie flagi początku epilogu"
-#: src/readelf.c:8831
+#: src/readelf.c:8845
#, c-format
msgid " set isa to %u\n"
msgstr " ustawienie isa na %u\n"
@@ -5627,7 +5627,7 @@ msgstr " ustawienie isa na %u\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8840
+#: src/readelf.c:8854
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5635,96 +5635,96 @@ msgstr[0] " nieznana instrukcja z %<PRIu8> parametrem:"
msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:"
msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:"
-#: src/readelf.c:8879
+#: src/readelf.c:8894
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "nie można uzyskać zawartości .debug_log: %s"
-#: src/readelf.c:9048
+#: src/readelf.c:9063
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "nieprawidłowe dane"
-#: src/readelf.c:9301
+#: src/readelf.c:9316
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "nie można uzyskać zawartości .debug_log: %s"
-#: src/readelf.c:9508 src/readelf.c:10552
+#: src/readelf.c:9523 src/readelf.c:10567
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDŁOWE DANE>\n"
-#: src/readelf.c:9563 src/readelf.c:9726
+#: src/readelf.c:9578 src/readelf.c:9741
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "nie można uzyskać danych sekcji informacji o makrach: %s"
-#: src/readelf.c:9643
+#: src/readelf.c:9658
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** niezakończony ciąg na końcu sekcji"
-#: src/readelf.c:9666
+#: src/readelf.c:9681
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** brak parametru DW_MACINFO_start_file na końcu sekcji"
-#: src/readelf.c:9767
+#: src/readelf.c:9782
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Offset: 0x%<PRIx64>\n"
-#: src/readelf.c:9779
+#: src/readelf.c:9794
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " Wersja: %<PRIu16>\n"
-#: src/readelf.c:9785 src/readelf.c:10672
+#: src/readelf.c:9800 src/readelf.c:10687
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " nieznana wersja, nie można przetworzyć sekcji\n"
-#: src/readelf.c:9792
+#: src/readelf.c:9807
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Flaga: 0x%<PRIx8>\n"
-#: src/readelf.c:9821
+#: src/readelf.c:9836
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:9829
+#: src/readelf.c:9844
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:9854
+#: src/readelf.c:9869
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " tabela instrukcji rozszerzenia, %<PRIu8> elementów:\n"
-#: src/readelf.c:9861
+#: src/readelf.c:9876
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:9873
+#: src/readelf.c:9888
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " Parametry %<PRIu8>:"
-#: src/readelf.c:9888
+#: src/readelf.c:9903
#, c-format
msgid " no arguments."
msgstr " brak parametrów."
-#: src/readelf.c:10089
+#: src/readelf.c:10104
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr " [%5d] offset DIE: %6<PRId64>, offset CU DIE: %6<PRId64>, nazwa: %s\n"
-#: src/readelf.c:10133
+#: src/readelf.c:10148
#, c-format
msgid ""
"\n"
@@ -5735,41 +5735,41 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
" %*s Ciąg\n"
-#: src/readelf.c:10148
+#: src/readelf.c:10163
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** błąd podczas odczytywania ciągów: %s\n"
-#: src/readelf.c:10177
+#: src/readelf.c:10192
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "nie można uzyskać danych sekcji: %s"
-#: src/readelf.c:10276
+#: src/readelf.c:10291
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:10278
+#: src/readelf.c:10293
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:10292
+#: src/readelf.c:10307
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:10301
+#: src/readelf.c:10316
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:10355
+#: src/readelf.c:10370
#, c-format
msgid ""
"\n"
@@ -5778,7 +5778,7 @@ msgstr ""
"\n"
"Sekcja tabeli wyszukiwania ramki wywołania [%2zu] „.eh_frame_hdr”:\n"
-#: src/readelf.c:10457
+#: src/readelf.c:10472
#, c-format
msgid ""
"\n"
@@ -5787,22 +5787,22 @@ msgstr ""
"\n"
"Sekcja tabeli obsługiwania wyjątków [%2zu] „.gcc_except_table”:\n"
-#: src/readelf.c:10480
+#: src/readelf.c:10495
#, c-format
msgid " LPStart encoding: %#x "
msgstr " Kodowanie LPStart: %#x "
-#: src/readelf.c:10492
+#: src/readelf.c:10507
#, c-format
msgid " TType encoding: %#x "
msgstr " Kodowanie TType: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10522
#, c-format
msgid " Call site encoding: %#x "
msgstr " Kodowanie strony wywołania: %#x "
-#: src/readelf.c:10520
+#: src/readelf.c:10535
msgid ""
"\n"
" Call site table:"
@@ -5810,7 +5810,7 @@ msgstr ""
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:10534
+#: src/readelf.c:10549
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5823,12 +5823,12 @@ msgstr ""
" Lądowisko: %#<PRIx64>\n"
" Działanie: %u\n"
-#: src/readelf.c:10607
+#: src/readelf.c:10622
#, c-format
msgid "invalid TType encoding"
msgstr "nieprawidłowe kodowanie TType"
-#: src/readelf.c:10634
+#: src/readelf.c:10649
#, c-format
msgid ""
"\n"
@@ -5837,37 +5837,37 @@ msgstr ""
"\n"
"Sekcja GDB [%2zu] „%s” pod offsetem %#<PRIx64> zawiera %<PRId64> bajtów:\n"
-#: src/readelf.c:10663
+#: src/readelf.c:10678
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " Wersja: %<PRId32>\n"
-#: src/readelf.c:10681
+#: src/readelf.c:10696
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " offset CU: %#<PRIx32>\n"
-#: src/readelf.c:10688
+#: src/readelf.c:10703
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " offset TU: %#<PRIx32>\n"
-#: src/readelf.c:10695
+#: src/readelf.c:10710
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " offset adresu: %#<PRIx32>\n"
-#: src/readelf.c:10702
+#: src/readelf.c:10717
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " offset symbolu: %#<PRIx32>\n"
-#: src/readelf.c:10709
+#: src/readelf.c:10724
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " offset stałej: %#<PRIx32>\n"
-#: src/readelf.c:10723
+#: src/readelf.c:10738
#, c-format
msgid ""
"\n"
@@ -5876,7 +5876,7 @@ msgstr ""
"\n"
" Lista CU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10748
+#: src/readelf.c:10763
#, c-format
msgid ""
"\n"
@@ -5885,7 +5885,7 @@ msgstr ""
"\n"
" Lista TU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10777
+#: src/readelf.c:10792
#, c-format
msgid ""
"\n"
@@ -5894,7 +5894,7 @@ msgstr ""
"\n"
" Lista adresów pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10809
+#: src/readelf.c:10824
#, c-format
msgid ""
"\n"
@@ -5903,18 +5903,18 @@ msgstr ""
"\n"
" Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n"
-#: src/readelf.c:10947
+#: src/readelf.c:10962
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s"
-#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043
-#: src/readelf.c:12101
+#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
+#: src/readelf.c:12116
#, c-format
msgid "cannot convert core note data: %s"
msgstr "nie można konwertować danych notatki core: %s"
-#: src/readelf.c:11673
+#: src/readelf.c:11688
#, c-format
msgid ""
"\n"
@@ -5923,21 +5923,21 @@ msgstr ""
"\n"
"%*s… <powtarza się jeszcze %u razy>…"
-#: src/readelf.c:12180
+#: src/readelf.c:12195
msgid " Owner Data size Type\n"
msgstr " Właściciel Rozmiar danych Typ\n"
-#: src/readelf.c:12209
+#: src/readelf.c:12224
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12261
+#: src/readelf.c:12276
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "nie można uzyskać zawartości sekcji notatki: %s"
-#: src/readelf.c:12288
+#: src/readelf.c:12303
#, c-format
msgid ""
"\n"
@@ -5947,7 +5947,7 @@ msgstr ""
"Segment notatki [%2zu] „%s” o długości %<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12311
+#: src/readelf.c:12326
#, c-format
msgid ""
"\n"
@@ -5956,7 +5956,7 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12358
+#: src/readelf.c:12373
#, c-format
msgid ""
"\n"
@@ -5965,12 +5965,12 @@ msgstr ""
"\n"
"Sekcja [%zu] „%s” nie ma danych do zrzucenia.\n"
-#: src/readelf.c:12385 src/readelf.c:12436
+#: src/readelf.c:12400 src/readelf.c:12451
#, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "nie można uzyskać danych dla sekcji [%zu] „%s”: %s"
-#: src/readelf.c:12390
+#: src/readelf.c:12405
#, c-format
msgid ""
"\n"
@@ -5980,7 +5980,7 @@ msgstr ""
"Segment zrzutu szesnastkowego [%zu] „%s”, %<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12395
+#: src/readelf.c:12410
#, c-format
msgid ""
"\n"
@@ -5991,7 +5991,7 @@ msgstr ""
"Zrzut szesnastkowy sekcji [%zu] „%s”, %<PRIu64> bajtów (%zd "
"nieskompresowanych) pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12409
+#: src/readelf.c:12424
#, c-format
msgid ""
"\n"
@@ -6000,7 +6000,7 @@ msgstr ""
"\n"
"Sekcja [%zu] „%s” nie ma ciągów do zrzucenia.\n"
-#: src/readelf.c:12441
+#: src/readelf.c:12456
#, c-format
msgid ""
"\n"
@@ -6009,7 +6009,7 @@ msgstr ""
"\n"
"Sekcja ciągów [%zu] „%s” zawiera %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12446
+#: src/readelf.c:12461
#, c-format
msgid ""
"\n"
@@ -6020,7 +6020,7 @@ msgstr ""
"Sekcja ciągów [%zu] „%s” zawiera %<PRIu64> bajtów (%zd nieskompresowanych) "
"pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12495
+#: src/readelf.c:12510
#, c-format
msgid ""
"\n"
@@ -6029,7 +6029,7 @@ msgstr ""
"\n"
"sekcja [%lu] nie istnieje"
-#: src/readelf.c:12524
+#: src/readelf.c:12539
#, c-format
msgid ""
"\n"
@@ -6038,12 +6038,12 @@ msgstr ""
"\n"
"sekcja „%s” nie istnieje"
-#: src/readelf.c:12581
+#: src/readelf.c:12596
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "nie można uzyskać indeksu symboli archiwum „%s”: %s"
-#: src/readelf.c:12584
+#: src/readelf.c:12599
#, c-format
msgid ""
"\n"
@@ -6052,7 +6052,7 @@ msgstr ""
"\n"
"Archiwum „%s” nie ma indeksu symboli\n"
-#: src/readelf.c:12588
+#: src/readelf.c:12603
#, c-format
msgid ""
"\n"
@@ -6061,12 +6061,12 @@ msgstr ""
"\n"
"Indeks archiwum „%s” ma %zu wpisów:\n"
-#: src/readelf.c:12606
+#: src/readelf.c:12621
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "nie można wydobyć elementów pod offsetem %zu w „%s”: %s"
-#: src/readelf.c:12611
+#: src/readelf.c:12626
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Element archiwum „%s” zawiera:\n"
@@ -7033,7 +7033,7 @@ msgstr ""
"jest nazwą oddzielnego pliku debuginfo lub „-”, jeśli nie odnaleziono "
"debuginfo lub „.”, jeśli PLIK zawiera informacje debugowania."
-#: tests/backtrace.c:442
+#: tests/backtrace.c:437
msgid "Run executable"
msgstr "Uruchamia plik wykonywalny"
diff --git a/po/uk.po b/po/uk.po
index 79d9c911..7c6120ac 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2018-11-16 12:42+0100\n"
+"POT-Creation-Date: 2019-02-14 14:31+0100\n"
"PO-Revision-Date: 2015-09-26 16:41+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
@@ -59,7 +59,7 @@ msgstr ""
"гарантій, зокрема гарантій працездатності або придатності для певної мети.\n"
#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552
+#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
#, c-format
msgid "memory exhausted"
msgstr "пам’ять вичерпано"
@@ -587,7 +587,7 @@ msgstr " Ід. збирання: "
msgid " Linker version: %.*s\n"
msgstr " Версія компонувальника: %.*s\n"
-#: libebl/eblobjnote.c:553
+#: libebl/eblobjnote.c:571
#, c-format
msgid " OS: %s, ABI: "
msgstr " ОС: %s, ABI: "
@@ -707,8 +707,8 @@ msgstr "невідповідність полів data/scn"
msgid "invalid section header"
msgstr "некоректний заголовок розділу"
-#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375
-#: src/readelf.c:10476 src/readelf.c:10658
+#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
+#: src/readelf.c:10491 src/readelf.c:10673
#, c-format
msgid "invalid data"
msgstr "некоректні дані"
@@ -3751,8 +3751,8 @@ msgstr "не вдалося створити дерево пошуку"
#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276
-#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467
+#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
+#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -4065,7 +4065,7 @@ msgstr "не вдалося визначити кількість розділі
msgid "cannot get section: %s"
msgstr "не вдалося отримати розділ: %s"
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500
+#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
@@ -4079,8 +4079,8 @@ msgstr "не вдалося отримати заголовок розділу:
msgid "cannot get section name"
msgstr "не вдалося отримати назву розділу"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465
-#: src/readelf.c:10643
+#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
+#: src/readelf.c:10658
#, c-format
msgid "cannot get %s content: %s"
msgstr "не вдалося отримати дані %s: %s"
@@ -4466,8 +4466,8 @@ msgstr "<НЕКОРЕКТНИЙ СИМВОЛ>"
msgid "<INVALID SECTION>"
msgstr "<НЕКОРЕКТНИЙ РОЗДІЛ>"
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371
-#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429
+#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
+#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
msgid "Couldn't uncompress section"
msgstr ""
@@ -5021,9 +5021,9 @@ msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] зміщення: %<PRId64>, дочірній: %s, мітка: %s\n"
#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306
-#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104
-#: src/readelf.c:10164
+#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
+#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
+#: src/readelf.c:10179
#, c-format
msgid ""
"\n"
@@ -5037,41 +5037,41 @@ msgstr ""
msgid "cannot get .debug_addr section data: %s"
msgstr "не вдалося отримати дані розділу: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915
+#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928
+#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " версія DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937
+#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " Розмір адреси: %6<PRIu64>\n"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947
+#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr ""
" Розмір сегмента: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296
+#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
#, fuzzy, c-format
msgid "Unknown version"
msgstr "невідома версія"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942
+#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
#, c-format
msgid "unsupported address size"
msgstr "непідтримуваний розмір адреси"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952
+#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
#, c-format
msgid "unsupported segment size"
msgstr "непідтримуваний розмір сегмента"
@@ -5122,7 +5122,7 @@ msgstr ""
"Таблиця за зміщенням %zu:\n"
#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8896
+#: src/readelf.c:8911
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "некоректні дані у розділі [%zu] «%s»"
@@ -5175,39 +5175,39 @@ msgstr " %zu байтів доповнення\n"
msgid "cannot get .debug_rnglists content: %s"
msgstr "не вдалося отримати дані .debug_ranges: %s"
-#: src/readelf.c:5595 src/readelf.c:8902
+#: src/readelf.c:5595 src/readelf.c:8917
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " зміщення .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:5650 src/readelf.c:8957
+#: src/readelf.c:5650 src/readelf.c:8972
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Довжина зміщення: %<PRIu8>\n"
-#: src/readelf.c:5666 src/readelf.c:8973
+#: src/readelf.c:5666 src/readelf.c:8988
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8975
+#: src/readelf.c:5668 src/readelf.c:8990
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8981
+#: src/readelf.c:5674 src/readelf.c:8996
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:8992
+#: src/readelf.c:5685 src/readelf.c:9007
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:8996
+#: src/readelf.c:5689 src/readelf.c:9011
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Зміщення: 0x%<PRIx64>\n"
@@ -5217,7 +5217,7 @@ msgstr " Зміщення: 0x%<PRIx64>\n"
msgid "invalid range list data"
msgstr "некоректні дані"
-#: src/readelf.c:5926 src/readelf.c:9284
+#: src/readelf.c:5926 src/readelf.c:9299
#, fuzzy, c-format
msgid ""
" %zu padding bytes\n"
@@ -5229,33 +5229,33 @@ msgstr " %zu байтів доповнення\n"
msgid "cannot get .debug_ranges content: %s"
msgstr "не вдалося отримати дані .debug_ranges: %s"
-#: src/readelf.c:5979 src/readelf.c:9339
+#: src/readelf.c:5979 src/readelf.c:9354
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9341
+#: src/readelf.c:5981 src/readelf.c:9356
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393
+#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <НЕКОРЕКТНІ ДАНІ>\n"
-#: src/readelf.c:6011 src/readelf.c:9473
+#: src/readelf.c:6011 src/readelf.c:9488
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] базова адреса %s\n"
-#: src/readelf.c:6019 src/readelf.c:9481
+#: src/readelf.c:6019 src/readelf.c:9496
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] порожній список\n"
@@ -5516,12 +5516,12 @@ msgstr ""
"\n"
"Таблиця каталогу:"
-#: src/readelf.c:8395 src/readelf.c:8470
+#: src/readelf.c:8395 src/readelf.c:8472
#, fuzzy, c-format
msgid " ["
msgstr " PC: "
-#: src/readelf.c:8464
+#: src/readelf.c:8466
#, fuzzy
msgid ""
"\n"
@@ -5530,7 +5530,7 @@ msgstr ""
"\n"
" Таблиця місця виклику:"
-#: src/readelf.c:8525
+#: src/readelf.c:8527
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5538,7 +5538,7 @@ msgstr ""
"Таблиця назв файлів:\n"
" Запис Кат Час Розмір Назва"
-#: src/readelf.c:8560
+#: src/readelf.c:8564
msgid ""
"\n"
"Line number statements:"
@@ -5546,120 +5546,120 @@ msgstr ""
"\n"
"Оператори номерів рядків:"
-#: src/readelf.c:8583
+#: src/readelf.c:8587
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "некоректну кількість операцій на інструкцію прирівняно до нуля"
-#: src/readelf.c:8617
+#: src/readelf.c:8621
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " спеціальний код операції %u: адреса+%u = %s, рядок%+d = %zu\n"
-#: src/readelf.c:8621
+#: src/readelf.c:8625
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
" спеціальний код операції %u: адреса+%u = %s, індекс_оп = %u, рядок%+d = "
"%zu\n"
-#: src/readelf.c:8624
+#: src/readelf.c:8628
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8642
+#: src/readelf.c:8646
#, c-format
msgid " extended opcode %u: "
msgstr " розширений код операції %u: "
-#: src/readelf.c:8647
+#: src/readelf.c:8651
msgid " end of sequence"
msgstr " кінець послідовності"
-#: src/readelf.c:8665
+#: src/readelf.c:8669
#, fuzzy, c-format
msgid " set address to "
msgstr " встановити адресу у значення %s\n"
-#: src/readelf.c:8693
+#: src/readelf.c:8697
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
" визначення нового файла: dir=%u, mtime=%<PRIu64>, довжина=%<PRIu64>, назва="
"%s\n"
-#: src/readelf.c:8706
+#: src/readelf.c:8711
#, c-format
msgid " set discriminator to %u\n"
msgstr " встановити розрізнення для %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8711
+#: src/readelf.c:8716
msgid " unknown opcode"
msgstr " невідомий код операції"
#. Takes no argument.
-#: src/readelf.c:8723
+#: src/readelf.c:8728
msgid " copy"
msgstr " копія"
-#: src/readelf.c:8732
+#: src/readelf.c:8739
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr " збільшення адреси на %u до %s\n"
-#: src/readelf.c:8736 src/readelf.c:8792
+#: src/readelf.c:8743 src/readelf.c:8804
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8746
+#: src/readelf.c:8755
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " просувати рядок на сталу %d до %<PRId64>\n"
-#: src/readelf.c:8754
+#: src/readelf.c:8765
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " встановити файл у %<PRIu64>\n"
-#: src/readelf.c:8764
+#: src/readelf.c:8776
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " встановити значення стовпчика %<PRIu64>\n"
-#: src/readelf.c:8771
+#: src/readelf.c:8783
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " встановити «%s» у %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8777
+#: src/readelf.c:8789
msgid " set basic block flag"
msgstr " встановити прапорець базового блоку"
-#: src/readelf.c:8788
+#: src/readelf.c:8800
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr " збільшити адресу на сталу величину %u до %s\n"
-#: src/readelf.c:8807
+#: src/readelf.c:8820
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr " збільшити адресу на фіксовану величину %u до %s\n"
#. Takes no argument.
-#: src/readelf.c:8817
+#: src/readelf.c:8830
msgid " set prologue end flag"
msgstr " встановити прапорець кінця вступу"
#. Takes no argument.
-#: src/readelf.c:8822
+#: src/readelf.c:8835
msgid " set epilogue begin flag"
msgstr " встановити прапорець початку епілогу"
-#: src/readelf.c:8831
+#: src/readelf.c:8845
#, c-format
msgid " set isa to %u\n"
msgstr " встановити isa у %u\n"
@@ -5667,7 +5667,7 @@ msgstr " встановити isa у %u\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8840
+#: src/readelf.c:8854
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5675,97 +5675,97 @@ msgstr[0] " невідомий код операції з %<PRIu8> параме
msgstr[1] " невідомий код операції з %<PRIu8> параметрами:"
msgstr[2] " невідомий код операції з %<PRIu8> параметрами:"
-#: src/readelf.c:8879
+#: src/readelf.c:8894
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "не вдалося отримати вміст .debug_loc: %s"
-#: src/readelf.c:9048
+#: src/readelf.c:9063
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "некоректні дані"
-#: src/readelf.c:9301
+#: src/readelf.c:9316
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "не вдалося отримати вміст .debug_loc: %s"
-#: src/readelf.c:9508 src/readelf.c:10552
+#: src/readelf.c:9523 src/readelf.c:10567
msgid " <INVALID DATA>\n"
msgstr " <НЕКОРЕКТНІ ДАНІ>\n"
-#: src/readelf.c:9563 src/readelf.c:9726
+#: src/readelf.c:9578 src/readelf.c:9741
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "не вдалося отримати дані розділу відомостей щодо макросів: %s"
-#: src/readelf.c:9643
+#: src/readelf.c:9658
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** незавершений рядок наприкінці розділу"
-#: src/readelf.c:9666
+#: src/readelf.c:9681
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу"
-#: src/readelf.c:9767
+#: src/readelf.c:9782
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Зміщення: 0x%<PRIx64>\n"
-#: src/readelf.c:9779
+#: src/readelf.c:9794
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " Версія: %<PRIu16>\n"
-#: src/readelf.c:9785 src/readelf.c:10672
+#: src/readelf.c:9800 src/readelf.c:10687
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " невідома версія, не вдалося обробити розділ\n"
-#: src/readelf.c:9792
+#: src/readelf.c:9807
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Прапорець: 0x%<PRIx8>\n"
-#: src/readelf.c:9821
+#: src/readelf.c:9836
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Довжина зміщення: %<PRIu8>\n"
-#: src/readelf.c:9829
+#: src/readelf.c:9844
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " зміщення .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:9854
+#: src/readelf.c:9869
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " таблиця кодів операцій розширень, записів — %<PRIu8>:\n"
-#: src/readelf.c:9861
+#: src/readelf.c:9876
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:9873
+#: src/readelf.c:9888
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " %<PRIu8> аргументів:"
-#: src/readelf.c:9888
+#: src/readelf.c:9903
#, c-format
msgid " no arguments."
msgstr " немає аргументів."
-#: src/readelf.c:10089
+#: src/readelf.c:10104
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
" [%5d] зміщення DIE: %6<PRId64>, зміщення CU DIE: %6<PRId64>, назва: %s\n"
-#: src/readelf.c:10133
+#: src/readelf.c:10148
#, c-format
msgid ""
"\n"
@@ -5776,41 +5776,41 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
" %*s Рядок\n"
-#: src/readelf.c:10148
+#: src/readelf.c:10163
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** помилка під час читання рядків: %s\n"
-#: src/readelf.c:10177
+#: src/readelf.c:10192
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "не вдалося отримати дані розділу: %s"
-#: src/readelf.c:10276
+#: src/readelf.c:10291
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:10278
+#: src/readelf.c:10293
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Довжина зміщення: %<PRIu8>\n"
-#: src/readelf.c:10292
+#: src/readelf.c:10307
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " версія DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:10301
+#: src/readelf.c:10316
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:10355
+#: src/readelf.c:10370
#, c-format
msgid ""
"\n"
@@ -5819,7 +5819,7 @@ msgstr ""
"\n"
"Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10457
+#: src/readelf.c:10472
#, c-format
msgid ""
"\n"
@@ -5828,22 +5828,22 @@ msgstr ""
"\n"
"Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10480
+#: src/readelf.c:10495
#, c-format
msgid " LPStart encoding: %#x "
msgstr " Кодування LPStart: %#x "
-#: src/readelf.c:10492
+#: src/readelf.c:10507
#, c-format
msgid " TType encoding: %#x "
msgstr " Кодування TType: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10522
#, c-format
msgid " Call site encoding: %#x "
msgstr " Кодування місця виклику:%#x "
-#: src/readelf.c:10520
+#: src/readelf.c:10535
msgid ""
"\n"
" Call site table:"
@@ -5851,7 +5851,7 @@ msgstr ""
"\n"
" Таблиця місця виклику:"
-#: src/readelf.c:10534
+#: src/readelf.c:10549
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5864,12 +5864,12 @@ msgstr ""
" Місце застосування: %#<PRIx64>\n"
" Дія: %u\n"
-#: src/readelf.c:10607
+#: src/readelf.c:10622
#, c-format
msgid "invalid TType encoding"
msgstr "некоректне кодування TType"
-#: src/readelf.c:10634
+#: src/readelf.c:10649
#, c-format
msgid ""
"\n"
@@ -5878,37 +5878,37 @@ msgstr ""
"\n"
"Розділ GDB [%2zu] «%s» за зміщенням %#<PRIx64> містить %<PRId64> байтів:\n"
-#: src/readelf.c:10663
+#: src/readelf.c:10678
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " Версія: %<PRId32>\n"
-#: src/readelf.c:10681
+#: src/readelf.c:10696
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " зміщення CU: %#<PRIx32>\n"
-#: src/readelf.c:10688
+#: src/readelf.c:10703
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " зміщення TU: %#<PRIx32>\n"
-#: src/readelf.c:10695
+#: src/readelf.c:10710
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " зміщення адреси: %#<PRIx32>\n"
-#: src/readelf.c:10702
+#: src/readelf.c:10717
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " зміщення символу: %#<PRIx32>\n"
-#: src/readelf.c:10709
+#: src/readelf.c:10724
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " стале зміщення: %#<PRIx32>\n"
-#: src/readelf.c:10723
+#: src/readelf.c:10738
#, c-format
msgid ""
"\n"
@@ -5917,7 +5917,7 @@ msgstr ""
"\n"
" Список CU зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:10748
+#: src/readelf.c:10763
#, c-format
msgid ""
"\n"
@@ -5926,7 +5926,7 @@ msgstr ""
"\n"
" Список TU зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:10777
+#: src/readelf.c:10792
#, c-format
msgid ""
"\n"
@@ -5935,7 +5935,7 @@ msgstr ""
"\n"
" Список адрес зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:10809
+#: src/readelf.c:10824
#, c-format
msgid ""
"\n"
@@ -5944,18 +5944,18 @@ msgstr ""
"\n"
" Таблиця символів за зміщенням %#<PRIx32> містить %zu позицій:\n"
-#: src/readelf.c:10947
+#: src/readelf.c:10962
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "не вдалося отримати дескриптор контексту зневаджування: %s"
-#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043
-#: src/readelf.c:12101
+#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
+#: src/readelf.c:12116
#, c-format
msgid "cannot convert core note data: %s"
msgstr "не вдалося перетворити дані запису ядра: %s"
-#: src/readelf.c:11673
+#: src/readelf.c:11688
#, c-format
msgid ""
"\n"
@@ -5964,21 +5964,21 @@ msgstr ""
"\n"
"%*s... <повторюється %u разів> ..."
-#: src/readelf.c:12180
+#: src/readelf.c:12195
msgid " Owner Data size Type\n"
msgstr " Власник Розм. даних Тип\n"
-#: src/readelf.c:12209
+#: src/readelf.c:12224
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12261
+#: src/readelf.c:12276
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "не вдалося отримати вміст розділу записів: %s"
-#: src/readelf.c:12288
+#: src/readelf.c:12303
#, c-format
msgid ""
"\n"
@@ -5988,7 +5988,7 @@ msgstr ""
"Розділ записів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщенням "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12311
+#: src/readelf.c:12326
#, c-format
msgid ""
"\n"
@@ -5997,7 +5997,7 @@ msgstr ""
"\n"
"Сегмент записів з %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12358
+#: src/readelf.c:12373
#, c-format
msgid ""
"\n"
@@ -6006,12 +6006,12 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міститься даних для створення дампу.\n"
-#: src/readelf.c:12385 src/readelf.c:12436
+#: src/readelf.c:12400 src/readelf.c:12451
#, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "не вдалося отримати дані для розділу [%zu] «%s»: %s"
-#: src/readelf.c:12390
+#: src/readelf.c:12405
#, c-format
msgid ""
"\n"
@@ -6020,7 +6020,7 @@ msgstr ""
"\n"
"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12395
+#: src/readelf.c:12410
#, fuzzy, c-format
msgid ""
"\n"
@@ -6030,7 +6030,7 @@ msgstr ""
"\n"
"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12409
+#: src/readelf.c:12424
#, c-format
msgid ""
"\n"
@@ -6039,7 +6039,7 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міститься рядків для створення дампу.\n"
-#: src/readelf.c:12441
+#: src/readelf.c:12456
#, c-format
msgid ""
"\n"
@@ -6048,7 +6048,7 @@ msgstr ""
"\n"
"Розділ рядків [%zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12446
+#: src/readelf.c:12461
#, fuzzy, c-format
msgid ""
"\n"
@@ -6058,7 +6058,7 @@ msgstr ""
"\n"
"Розділ рядків [%zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12495
+#: src/readelf.c:12510
#, c-format
msgid ""
"\n"
@@ -6067,7 +6067,7 @@ msgstr ""
"\n"
"розділу [%lu] не існує"
-#: src/readelf.c:12524
+#: src/readelf.c:12539
#, c-format
msgid ""
"\n"
@@ -6076,12 +6076,12 @@ msgstr ""
"\n"
"розділу «%s» не існує"
-#: src/readelf.c:12581
+#: src/readelf.c:12596
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "не вдалося отримати покажчик символів архіву «%s»: %s"
-#: src/readelf.c:12584
+#: src/readelf.c:12599
#, c-format
msgid ""
"\n"
@@ -6090,7 +6090,7 @@ msgstr ""
"\n"
"У архіві «%s» немає покажчика символів\n"
-#: src/readelf.c:12588
+#: src/readelf.c:12603
#, c-format
msgid ""
"\n"
@@ -6099,12 +6099,12 @@ msgstr ""
"\n"
"Покажчик архіву «%s» містить %zu записів:\n"
-#: src/readelf.c:12606
+#: src/readelf.c:12621
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "не вдалося видобути елемент за зміщенням %zu у «%s»: %s"
-#: src/readelf.c:12611
+#: src/readelf.c:12626
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Елемент архіву «%s» містить:\n"
@@ -7088,7 +7088,7 @@ msgstr ""
"окремого файла діагностичних даних або «-», якщо файла діагностичних даних "
"не вдалося знайти, і «.», якщо ФАЙЛ сам містить діагностичні дані."
-#: tests/backtrace.c:442
+#: tests/backtrace.c:437
msgid "Run executable"
msgstr "Запустити виконуваний файл"
diff --git a/src/ChangeLog b/src/ChangeLog
index 803ac95f..0544fceb 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,21 @@
+2019-01-24 Mark Wielaard <mark@klomp.org>
+
+ * strip.c (handle_elf): Fix check test for SHN_XINDEX symbol.
+
+2019-01-22 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (print_debug_line_section): Check we are not at end of
+ line data when reading parameters for unknown opcodes.
+
+2019-01-20 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (print_debug_line_section): Check terminating NUL byte
+ for dir and file tables.
+
+2019-01-16 Mark Wielaard <mark@klomp.org>
+
+ * readelf (handle_core_note): Pass desc to ebl_core_note.
+
2018-11-10 Mark Wielaard <mark@klomp.org>
* elflint.c (check_program_header): Allow PT_GNU_EH_FRAME segment
diff --git a/src/readelf.c b/src/readelf.c
index 3a73710f..33706bde 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -8444,7 +8444,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
}
else
{
- while (*linep != 0)
+ while (linep < lineendp && *linep != 0)
{
unsigned char *endp = memchr (linep, '\0', lineendp - linep);
if (unlikely (endp == NULL))
@@ -8454,6 +8454,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
linep = endp + 1;
}
+ if (linep >= lineendp || *linep != 0)
+ goto invalid_unit;
/* Skip the final NUL byte. */
++linep;
}
@@ -8523,7 +8525,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
else
{
puts (gettext (" Entry Dir Time Size Name"));
- for (unsigned int cnt = 1; *linep != 0; ++cnt)
+ for (unsigned int cnt = 1; linep < lineendp && *linep != 0; ++cnt)
{
/* First comes the file name. */
char *fname = (char *) linep;
@@ -8553,6 +8555,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
printf (" %-5u %-5u %-9u %-9u %s\n",
cnt, diridx, mtime, fsize, fname);
}
+ if (linep >= lineendp || *linep != '\0')
+ goto invalid_unit;
/* Skip the final NUL byte. */
++linep;
}
@@ -8699,7 +8703,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
case DW_LNE_set_discriminator:
/* Takes one ULEB128 parameter, the discriminator. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
+ if (unlikely (standard_opcode_lengths[opcode] != 1
+ || lineendp - linep < 1))
goto invalid_unit;
get_uleb128 (u128, linep, lineendp);
@@ -8726,6 +8731,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
case DW_LNS_advance_pc:
/* Takes one uleb128 parameter which is added to the
address. */
+ if (lineendp - linep < 1)
+ goto invalid_unit;
get_uleb128 (u128, linep, lineendp);
advance_pc (u128);
{
@@ -8741,6 +8748,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
case DW_LNS_advance_line:
/* Takes one sleb128 parameter which is added to the
line. */
+ if (lineendp - linep < 1)
+ goto invalid_unit;
get_sleb128 (s128, linep, lineendp);
line += s128;
printf (gettext ("\
@@ -8750,6 +8759,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
case DW_LNS_set_file:
/* Takes one uleb128 parameter which is stored in file. */
+ if (lineendp - linep < 1)
+ goto invalid_unit;
get_uleb128 (u128, linep, lineendp);
printf (gettext (" set file to %" PRIu64 "\n"),
(uint64_t) u128);
@@ -8757,7 +8768,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
case DW_LNS_set_column:
/* Takes one uleb128 parameter which is stored in column. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
+ if (unlikely (standard_opcode_lengths[opcode] != 1
+ || lineendp - linep < 1))
goto invalid_unit;
get_uleb128 (u128, linep, lineendp);
@@ -8797,7 +8809,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
case DW_LNS_fixed_advance_pc:
/* Takes one 16 bit parameter which is added to the
address. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
+ if (unlikely (standard_opcode_lengths[opcode] != 1
+ || lineendp - linep < 2))
goto invalid_unit;
u128 = read_2ubyte_unaligned_inc (dbg, linep);
@@ -8824,7 +8837,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
case DW_LNS_set_isa:
/* Takes one uleb128 parameter which is stored in isa. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
+ if (unlikely (standard_opcode_lengths[opcode] != 1
+ || lineendp - linep < 1))
goto invalid_unit;
get_uleb128 (u128, linep, lineendp);
@@ -8841,7 +8855,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
" unknown opcode with %" PRIu8 " parameters:",
standard_opcode_lengths[opcode]),
standard_opcode_lengths[opcode]);
- for (int n = standard_opcode_lengths[opcode]; n > 0; --n)
+ for (int n = standard_opcode_lengths[opcode];
+ n > 0 && linep < lineendp; --n)
{
get_uleb128 (u128, linep, lineendp);
if (n != standard_opcode_lengths[opcode])
@@ -12153,7 +12168,7 @@ handle_core_note (Ebl *ebl, const GElf_Nhdr *nhdr,
size_t nitems;
const Ebl_Core_Item *items;
- if (! ebl_core_note (ebl, nhdr, name,
+ if (! ebl_core_note (ebl, nhdr, name, desc,
&regs_offset, &nregloc, &reglocs, &nitems, &items))
return;
diff --git a/src/strip.c b/src/strip.c
index 15180737..a73009d9 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -1944,7 +1944,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
INTERNAL_ERROR (fname);
if (sym->st_shndx == SHN_UNDEF
- || (sym->st_shndx >= shnum
+ || (sym->st_shndx >= SHN_LORESERVE
&& sym->st_shndx != SHN_XINDEX))
{
/* This is no section index, leave it alone
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 514229b7..b76c44d9 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,69 @@
+2019-01-24 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (system_elf_libelf_test_CPPFLAGS): Guard by
+ !INSTALL_ELFH.
+
+2019-01-31 Mark Wielaard <mark@klomp.org>
+
+ * backtrace-child.c (stdarg): Remove assert (errno == 0).
+ (main): Likewise.
+ * backtrace-data.c (maps_lookup): Likewise.
+ (set_initial_registers): Likewise.
+ (main): Likewise.
+ * backtrace.c (prepare_thread): Likewise.
+ (exec_dump): Likewise.
+
+2019-01-29 Yonghong Song <yhs@fb.com>
+
+ * backtrace-data.c (maps_lookup): Use %*u, not %*x, to parse
+ inode number.
+
+2019-01-18 Ulf Hermann <ulf.hermann@qt.io>
+
+ * run-annobingroup.sh: Use different files for strip output.
+ * run-strip-test-many.sh: Use different files for strip output,
+ check results of strip, unstrip, elflint.
+
+2019-01-24 Mark Wielaard <mark@klomp.org>
+
+ * addsections.c (add_sections): Change the name of the old shstrtab
+ section to ".old_shstrtab" and give the old shstrtab name to the
+ new shstrtab section.
+
+2019-01-09 Ulf Hermann <ulf.hermann@qt.io>
+
+ * run-readelf-compressed.sh: Skip if USE_BZIP2 not found.
+
+2018-12-27 Jim Wilson <jimw@sifive.com>
+
+ * run-readelf-mixed-corenote.sh: Update with new riscv64 output.
+
+2018-12-02 Mark Wielaard <mark@klomp.org>
+
+ * testfile_gnu_props.32le.o.bz2: New testfile.
+ * testfile_gnu_props.64le.o.bz2: Likewise.
+ * testfile_gnu_props.32be.o.bz2: Likewise.
+ * testfile_gnu_props.64be.o.bz2: Likewise.
+ * Makefile (EXTRA_DIST): Add new testfiles.
+ * run-readelf-n.sh: Run tests on new testfiles.
+
+2018-11-28 Mark Wielaard <mark@klomp.org>
+
+ * backtrace-data.c (main): Improve error message.
+ * run-backtrace-data.sh: Skip exit 77 return.
+
+2018-11-21 Mark Wielaard <mark@klomp.org>
+
+ * backtrace-subr.sh (check_unsupported): Call test_cleanup before
+ exit.
+
+2018-11-17 Mark Wielaard <mark@klomp.org>
+
+ * run-strip-version.sh: New test.
+ * testfile-version.bz2: New test file.
+ * Makefile.am (TESTS): Add run-strip-version.sh.
+ (EXTRA_DIST): Add run-strip-version.sh and testfile-version.bz2.
+
2018-11-09 Mark Wielaard <mark@klomp.org>
* run-strip-reloc.sh: Also test testfile-debug-rel-ppc64-z.o
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6258685b..c74a6c1e 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -157,7 +157,8 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-reloc-bpf.sh \
run-next-cfi.sh run-next-cfi-self.sh \
run-copyadd-sections.sh run-copymany-sections.sh \
- run-typeiter-many.sh run-strip-test-many.sh
+ run-typeiter-many.sh run-strip-test-many.sh \
+ run-strip-version.sh
if !BIARCH
export ELFUTILS_DISABLE_BIARCH = 1
@@ -276,6 +277,10 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-readelf-types.sh \
run-readelf-n.sh \
testfile-gnu-property-note.bz2 testfile-gnu-property-note.o.bz2 \
+ testfile_gnu_props.32le.o.bz2 \
+ testfile_gnu_props.64le.o.bz2 \
+ testfile_gnu_props.32be.o.bz2 \
+ testfile_gnu_props.64be.o.bz2 \
run-allfcts-multi.sh \
test-offset-loop.bz2 test-offset-loop.alt.bz2 \
run-prelink-addr-test.sh \
@@ -416,7 +421,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-typeiter-many.sh run-strip-test-many.sh \
testfile-debug-rel-ppc64-g.o.bz2 \
testfile-debug-rel-ppc64-z.o.bz2 \
- testfile-debug-rel-ppc64.o.bz2
+ testfile-debug-rel-ppc64.o.bz2 \
+ run-strip-version.sh testfile-version.bz2
if USE_VALGRIND
valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1'
@@ -590,8 +596,12 @@ elfcopy_LDADD = $(libelf)
addsections_LDADD = $(libelf)
# We want to test the libelf header against the system elf.h header.
-# Don't include any -I CPPFLAGS.
+# Don't include any -I CPPFLAGS. Except when we install our own elf.h.
+if !INSTALL_ELFH
system_elf_libelf_test_CPPFLAGS =
+else
+system_elf_libelf_test_CPPFLAGS = -I$(top_srcdir)/libelf
+endif
system_elf_libelf_test_LDADD = $(libelf)
# A lock file used to make sure only one test dumps core at a time
diff --git a/tests/addsections.c b/tests/addsections.c
index 391c5b47..cc8d0655 100644
--- a/tests/addsections.c
+++ b/tests/addsections.c
@@ -92,7 +92,7 @@ add_sections (const char *name, size_t nr, int use_mmap)
/* We will add a new shstrtab section with two new names at the end.
Just get the current shstrtab table and add two entries '.extra'
- and '.new_shstrtab' at the end of the table, so all existing indexes
+ and '.old_shstrtab' at the end of the table, so all existing indexes
are still valid. */
size_t shstrndx;
if (elf_getshdrstrndx (elf, &shstrndx) < 0)
@@ -115,7 +115,7 @@ add_sections (const char *name, size_t nr, int use_mmap)
}
size_t new_shstrtab_size = (shstrtab_data->d_size
+ strlen (".extra") + 1
- + strlen (".new_shstrtab") + 1);
+ + strlen (".old_shstrtab") + 1);
void *new_shstrtab_buf = malloc (new_shstrtab_size);
if (new_shstrtab_buf == NULL)
{
@@ -124,9 +124,30 @@ add_sections (const char *name, size_t nr, int use_mmap)
}
memcpy (new_shstrtab_buf, shstrtab_data->d_buf, shstrtab_data->d_size);
size_t extra_idx = shstrtab_data->d_size;
- size_t new_shstrtab_idx = extra_idx + strlen (".extra") + 1;
+ size_t old_shstrtab_idx = extra_idx + strlen (".extra") + 1;
strcpy (new_shstrtab_buf + extra_idx, ".extra");
- strcpy (new_shstrtab_buf + new_shstrtab_idx, ".new_shstrtab");
+ strcpy (new_shstrtab_buf + old_shstrtab_idx, ".old_shstrtab");
+
+ /* Change the name of the old shstrtab section, because elflint
+ has a strict check on the name/type for .shstrtab. */
+ GElf_Shdr shdr_mem;
+ GElf_Shdr *shdr = gelf_getshdr (shstrtab_scn, &shdr_mem);
+ if (shdr == NULL)
+ {
+ printf ("cannot get header for old shstrtab section: %s\n",
+ elf_errmsg (-1));
+ exit (1);
+ }
+
+ size_t shstrtab_idx = shdr->sh_name;
+ shdr->sh_name = old_shstrtab_idx;
+
+ if (gelf_update_shdr (shstrtab_scn, shdr) == 0)
+ {
+ printf ("cannot update old shstrtab section header: %s\n",
+ elf_errmsg (-1));
+ exit (1);
+ }
// Add lots of .extra sections...
size_t cnt = 0;
@@ -153,8 +174,7 @@ add_sections (const char *name, size_t nr, int use_mmap)
data->d_type = ELF_T_BYTE;
data->d_align = 1;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ shdr = gelf_getshdr (scn, &shdr_mem);
if (shdr == NULL)
{
printf ("cannot get header for new section (%zd): %s\n", cnt,
@@ -201,8 +221,7 @@ add_sections (const char *name, size_t nr, int use_mmap)
new_shstrtab_data->d_type = ELF_T_BYTE;
new_shstrtab_data->d_align = 1;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (new_shstrtab_scn, &shdr_mem);
+ shdr = gelf_getshdr (new_shstrtab_scn, &shdr_mem);
if (shdr == NULL)
{
printf ("cannot get header for new shstrtab section: %s\n",
@@ -218,7 +237,7 @@ add_sections (const char *name, size_t nr, int use_mmap)
shdr->sh_addralign = 1;
shdr->sh_entsize = 0;
shdr->sh_size = new_shstrtab_size;
- shdr->sh_name = new_shstrtab_idx;
+ shdr->sh_name = shstrtab_idx;
// Finished new shstrtab section, update the header.
if (gelf_update_shdr (new_shstrtab_scn, shdr) == 0)
diff --git a/tests/backtrace-child.c b/tests/backtrace-child.c
index 9c6ba94f..8bfed478 100644
--- a/tests/backtrace-child.c
+++ b/tests/backtrace-child.c
@@ -164,7 +164,6 @@ stdarg (int f UNUSED, ...)
if (ptraceme)
{
long l = ptrace (PTRACE_TRACEME, 0, NULL, NULL);
- assert (errno == 0);
assert (l == 0);
}
#ifdef RAISE_JMP_PATCHING
@@ -236,7 +235,6 @@ main (int argc UNUSED, char **argv)
{
errno = 0;
long l = ptrace (PTRACE_TRACEME, 0, NULL, NULL);
- assert (errno == 0);
assert (l == 0);
}
if (gencore)
diff --git a/tests/backtrace-data.c b/tests/backtrace-data.c
index 67ecd475..907b4780 100644
--- a/tests/backtrace-data.c
+++ b/tests/backtrace-data.c
@@ -47,7 +47,7 @@
int
main (int argc __attribute__ ((unused)), char **argv)
{
- fprintf (stderr, "%s: Unwinding not supported for this architecture\n",
+ fprintf (stderr, "%s: x86_64 linux only test\n",
argv[0]);
return 77;
}
@@ -96,18 +96,15 @@ maps_lookup (pid_t pid, Dwarf_Addr addr, GElf_Addr *basep)
{
char *fname;
int i = asprintf (&fname, "/proc/%ld/maps", (long) pid);
- assert (errno == 0);
assert (i > 0);
FILE *f = fopen (fname, "r");
- assert (errno == 0);
assert (f);
free (fname);
for (;;)
{
// 37e3c22000-37e3c23000 rw-p 00022000 00:11 49532 /lib64/ld-2.14.90.so */
unsigned long start, end, offset;
- i = fscanf (f, "%lx-%lx %*s %lx %*x:%*x %*x", &start, &end, &offset);
- assert (errno == 0);
+ i = fscanf (f, "%lx-%lx %*s %lx %*x:%*x %*u", &start, &end, &offset);
if (i != 3)
break;
char *filename = strdup ("");
@@ -129,7 +126,6 @@ maps_lookup (pid_t pid, Dwarf_Addr addr, GElf_Addr *basep)
if (start <= addr && addr < end)
{
i = fclose (f);
- assert (errno == 0);
assert (i == 0);
*basep = start - offset;
@@ -183,7 +179,6 @@ set_initial_registers (Dwfl_Thread *thread,
struct user_regs_struct user_regs;
long l = ptrace (PTRACE_GETREGS, child, NULL, &user_regs);
- assert (errno == 0);
assert (l == 0);
Dwarf_Word dwarf_regs[17];
@@ -284,11 +279,9 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
switch (child)
{
case -1:
- assert (errno == 0);
assert (0);
case 0:;
long l = ptrace (PTRACE_TRACEME, 0, NULL, NULL);
- assert (errno == 0);
assert (l == 0);
raise (SIGUSR1);
return 0;
@@ -298,7 +291,6 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
int status;
pid_t pid = waitpid (child, &status, 0);
- assert (errno == 0);
assert (pid == child);
assert (WIFSTOPPED (status));
assert (WSTOPSIG (status) == SIGUSR1);
@@ -316,7 +308,6 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
struct user_regs_struct user_regs;
long l = ptrace (PTRACE_GETREGS, child, NULL, &user_regs);
- assert (errno == 0);
assert (l == 0);
report_module (dwfl, child, user_regs.rip);
@@ -330,7 +321,6 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
dwfl_end (dwfl);
kill (child, SIGKILL);
pid = waitpid (child, &status, 0);
- assert (errno == 0);
assert (pid == child);
assert (WIFSIGNALED (status));
assert (WTERMSIG (status) == SIGKILL);
diff --git a/tests/backtrace-subr.sh b/tests/backtrace-subr.sh
index ff42c6ff..53c719df 100644
--- a/tests/backtrace-subr.sh
+++ b/tests/backtrace-subr.sh
@@ -85,6 +85,7 @@ check_unsupported()
testname=$2
if grep -q ': Unwinding not supported for this architecture$' $err; then
echo >&2 $testname: arch not supported
+ test_cleanup
exit 77
fi
}
diff --git a/tests/backtrace.c b/tests/backtrace.c
index 24ab68dd..05e8ef82 100644
--- a/tests/backtrace.c
+++ b/tests/backtrace.c
@@ -281,16 +281,13 @@ prepare_thread (pid_t pid2 __attribute__ ((unused)),
struct user_regs_struct user_regs;
errno = 0;
l = ptrace (PTRACE_GETREGS, pid2, 0, (intptr_t) &user_regs);
- assert (errno == 0);
assert (l == 0);
user_regs.rip = (intptr_t) jmp;
l = ptrace (PTRACE_SETREGS, pid2, 0, (intptr_t) &user_regs);
- assert (errno == 0);
assert (l == 0);
l = ptrace (PTRACE_CONT, pid2, NULL, (void *) (intptr_t) SIGUSR2);
int status;
pid_t got = waitpid (pid2, &status, __WALL);
- assert (errno == 0);
assert (got == pid2);
assert (WIFSTOPPED (status));
assert (WSTOPSIG (status) == SIGUSR1);
@@ -358,7 +355,6 @@ exec_dump (const char *exec)
errno = 0;
int status;
pid_t got = waitpid (pid, &status, 0);
- assert (errno == 0);
assert (got == pid);
assert (WIFSTOPPED (status));
// Main thread will signal SIGUSR2. Other thread will signal SIGUSR1.
@@ -368,7 +364,6 @@ exec_dump (const char *exec)
__WCLONE, probably despite pthread_create already had to be called the new
task is not yet alive enough for waitpid. */
pid_t pid2 = waitpid (-1, &status, __WALL);
- assert (errno == 0);
assert (pid2 > 0);
assert (pid2 != pid);
assert (WIFSTOPPED (status));
diff --git a/tests/run-annobingroup.sh b/tests/run-annobingroup.sh
index fd36e4ac..16b031a1 100755
--- a/tests/run-annobingroup.sh
+++ b/tests/run-annobingroup.sh
@@ -25,7 +25,7 @@
# gcc -g -O2 -fplugin=annobin -c testfile-annobingroup.c
testfiles testfile-annobingroup.o
-tempfiles merged.elf stripped.elf debugfile.elf remerged.elf
+tempfiles merged.elf stripped.elf debugfile1.elf debugfile2.elf debugfile3.elf remerged.elf
testrun_compare ${abs_top_builddir}/src/readelf -g testfile-annobingroup.o << EOF
@@ -35,7 +35,7 @@ Section group [ 1] '.group' with signature '.text.unlikely.group' contains 3 ent
[ 9] .text.unlikely
EOF
-testrun ${abs_top_builddir}/src/strip -o stripped.elf -f debugfile.elf testfile-annobingroup.o
+testrun ${abs_top_builddir}/src/strip -o stripped.elf -f debugfile1.elf testfile-annobingroup.o
testrun_compare ${abs_top_builddir}/src/readelf -g stripped.elf << EOF
@@ -45,7 +45,7 @@ Section group [ 1] '.group' with signature '.text.unlikely.group' contains 3 ent
[ 9] .text.unlikely
EOF
-testrun_compare ${abs_top_builddir}/src/readelf -g debugfile.elf << EOF
+testrun_compare ${abs_top_builddir}/src/readelf -g debugfile1.elf << EOF
Section group [ 1] '.group' with signature '.text.unlikely.group' contains 3 entries:
[ 7] .gnu.build.attributes..text.unlikely
@@ -53,7 +53,7 @@ Section group [ 1] '.group' with signature '.text.unlikely.group' contains 3 ent
[ 9] .text.unlikely
EOF
-testrun ${abs_top_builddir}/src/unstrip -o remerged.elf stripped.elf debugfile.elf
+testrun ${abs_top_builddir}/src/unstrip -o remerged.elf stripped.elf debugfile1.elf
testrun_compare ${abs_top_builddir}/src/readelf -g remerged.elf << EOF
@@ -81,7 +81,7 @@ COMDAT section group [ 2] '.group' with signature '__x86.get_pc_thunk.ax' contai
[13] .text.__x86.get_pc_thunk.ax
EOF
-testrun ${abs_top_builddir}/src/strip -o stripped.elf -f debugfile.elf testfile-annobingroup-i386.o
+testrun ${abs_top_builddir}/src/strip -o stripped.elf -f debugfile2.elf testfile-annobingroup-i386.o
testrun_compare ${abs_top_builddir}/src/readelf -g stripped.elf << EOF
@@ -94,7 +94,7 @@ COMDAT section group [ 2] '.group' with signature '__x86.get_pc_thunk.ax' contai
[13] .text.__x86.get_pc_thunk.ax
EOF
-testrun_compare ${abs_top_builddir}/src/readelf -g debugfile.elf << EOF
+testrun_compare ${abs_top_builddir}/src/readelf -g debugfile2.elf << EOF
Section group [ 1] '.group' with signature '.text.unlikely.group' contains 3 entries:
[ 8] .gnu.build.attributes..text.unlikely
@@ -105,7 +105,7 @@ COMDAT section group [ 2] '.group' with signature '__x86.get_pc_thunk.ax' contai
[13] .text.__x86.get_pc_thunk.ax
EOF
-testrun ${abs_top_builddir}/src/unstrip -o remerged.elf stripped.elf debugfile.elf
+testrun ${abs_top_builddir}/src/unstrip -o remerged.elf stripped.elf debugfile2.elf
testrun_compare ${abs_top_builddir}/src/readelf -g remerged.elf << EOF
@@ -143,13 +143,13 @@ Section group [ 4] '.group' with signature '.text.unlikely..group' contains 1 en
[27] .text.unlikely
EOF
-testrun ${abs_top_builddir}/src/strip -o stripped.elf -f debugfile.elf testfile-annobingroup-x86_64.o
+testrun ${abs_top_builddir}/src/strip -o stripped.elf -f debugfile3.elf testfile-annobingroup-x86_64.o
# This would/should work, except for the unknown NOTEs.
# testrun ${abs_top_builddir}/src/elflint --gnu stripped.elf
-# testrun ${abs_top_builddir}/src/elflint --gnu --debug debugfile.elf
+# testrun ${abs_top_builddir}/src/elflint --gnu --debug debugfile3.elf
-testrun ${abs_top_builddir}/src/unstrip -o remerged.elf stripped.elf debugfile.elf
+testrun ${abs_top_builddir}/src/unstrip -o remerged.elf stripped.elf debugfile3.elf
testrun ${abs_top_builddir}/src/elfcmp testfile-annobingroup-x86_64.o remerged.elf
diff --git a/tests/run-backtrace-data.sh b/tests/run-backtrace-data.sh
index 34a4f01d..3062c304 100755
--- a/tests/run-backtrace-data.sh
+++ b/tests/run-backtrace-data.sh
@@ -22,7 +22,11 @@
unset VALGRIND_CMD
tempfiles data.{bt,err}
-(set +ex; testrun ${abs_builddir}/backtrace-data 1>data.bt 2>data.err; true)
+(set +ex;
+ testrun ${abs_builddir}/backtrace-data 1>data.bt 2>data.err;
+ if test $? == 77; then cat data.{bt,err}; exit 77; fi
+ true)
+
cat data.{bt,err}
check_unsupported data.err data
check_all data.{bt,err} data
diff --git a/tests/run-readelf-compressed.sh b/tests/run-readelf-compressed.sh
index a2a04a2a..861553fe 100755
--- a/tests/run-readelf-compressed.sh
+++ b/tests/run-readelf-compressed.sh
@@ -17,6 +17,11 @@
. $srcdir/test-subr.sh
+if ! grep -q -F '#define USE_BZLIB' ${abs_top_builddir}/config.h; then
+ echo "elfutils built without bzip2 support"
+ exit 77
+fi
+
# See run-strip-reloc.sh
testfiles hello_i386.ko
diff --git a/tests/run-readelf-n.sh b/tests/run-readelf-n.sh
index c2db2ce2..cc7d7f66 100755
--- a/tests/run-readelf-n.sh
+++ b/tests/run-readelf-n.sh
@@ -125,3 +125,104 @@ Note section [22] '.note.gnu.property' of 48 bytes at offset 0x40c:
X86 0xc0000000 data: 00 00 00 00
X86 0xc0000001 data: 00 00 00 00
EOF
+
+#
+# = gnu_props.S
+#
+# #define NT_GNU_PROPERTY_TYPE_0 5
+# #define GNU_PROPERTY_STACK_SIZE 1
+# #define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2
+
+# /* Normal notes always have alignment and padding of 4 bytes,
+# but GNU Property notes use 4 byte words, with 8 byte padding
+# for ELFCLASS64. */
+# #if __SIZEOF_PTRDIFF_T__ == 8
+# # define ALIGN 3
+# #elif __SIZEOF_PTRDIFF_T__ == 4
+# # define ALIGN 2
+# #endif
+#
+# .section ".note.gnu.property", "a"
+# .p2align ALIGN
+# /* First note. */
+# .long 1f - 0f /* name length. */
+# .long 4f - 2f /* data length. */
+# .long NT_GNU_PROPERTY_TYPE_0 /* note type. */
+# 0:
+# .asciz "GNU" /* vendor name. */
+# 1:
+# .p2align ALIGN /* Padding. */
+# 2:
+# .long GNU_PROPERTY_STACK_SIZE /* pr_type. */
+# .long 4f - 3f /* pr_datasz. */
+# 3:
+# .dc.a 0x280000 /* Stack size. */
+# 4:
+# .p2align ALIGN
+#
+# /* Second note. */
+# .long 6f - 5f /* name length. */
+# .long 8f - 7f /* data length. */
+# .long NT_GNU_PROPERTY_TYPE_0 /* note type. */
+# 5:
+# .asciz "GNU" /* vendor name. */
+# 6:
+# .p2align ALIGN /* Padding. */
+# 7:
+# .long GNU_PROPERTY_NO_COPY_ON_PROTECTED /* pr_type. */
+# .long 0 /* pr_datasz. */
+# /* No data. */
+# 8:
+# .p2align ALIGN
+#
+# On x86_64
+# gcc -m64 -c -o testfile_gnu_props_64le.o gnu_props.S
+# gcc -m32 -c -o testfile_gnu_props_32le.o gnu_props.S
+
+testfiles testfile_gnu_props.32le.o testfile_gnu_props.64le.o
+
+testrun_compare ${abs_top_builddir}/src/readelf -n testfile_gnu_props.32le.o << EOF
+
+Note section [ 4] '.note.gnu.property' of 52 bytes at offset 0x34:
+ Owner Data size Type
+ GNU 12 GNU_PROPERTY_TYPE_0
+ STACK_SIZE 0x280000
+ GNU 8 GNU_PROPERTY_TYPE_0
+ NO_COPY_ON_PROTECTION
+EOF
+
+testrun_compare ${abs_top_builddir}/src/readelf -n testfile_gnu_props.64le.o << EOF
+
+Note section [ 4] '.note.gnu.property' of 56 bytes at offset 0x40:
+ Owner Data size Type
+ GNU 16 GNU_PROPERTY_TYPE_0
+ STACK_SIZE 0x280000
+ GNU 8 GNU_PROPERTY_TYPE_0
+ NO_COPY_ON_PROTECTION
+EOF
+
+# On ppc64
+# gcc -m32 -c -o testfile_gnu_props.32be.o gnu_props.S
+# gcc -m64 -c -o testfile_gnu_props.64be.o gnu_props.S
+
+testfiles testfile_gnu_props.32be.o testfile_gnu_props.64be.o
+
+testrun_compare ${abs_top_builddir}/src/readelf -n testfile_gnu_props.32be.o << EOF
+
+Note section [ 4] '.note.gnu.property' of 52 bytes at offset 0x34:
+ Owner Data size Type
+ GNU 12 GNU_PROPERTY_TYPE_0
+ STACK_SIZE 0x280000
+ GNU 8 GNU_PROPERTY_TYPE_0
+ NO_COPY_ON_PROTECTION
+EOF
+
+testrun_compare ${abs_top_builddir}/src/readelf -n testfile_gnu_props.64be.o << EOF
+
+Note section [ 4] '.note.gnu.property' of 56 bytes at offset 0x40:
+ Owner Data size Type
+ GNU 16 GNU_PROPERTY_TYPE_0
+ STACK_SIZE 0x280000
+ GNU 8 GNU_PROPERTY_TYPE_0
+ NO_COPY_ON_PROTECTION
+EOF
diff --git a/tests/run-strip-test-many.sh b/tests/run-strip-test-many.sh
index 9a9657cd..b0cbad8b 100755
--- a/tests/run-strip-test-many.sh
+++ b/tests/run-strip-test-many.sh
@@ -17,50 +17,67 @@
. $srcdir/test-subr.sh
+status=0
+
# Use the original file from run-strip-test.sh but with many sections
testfiles testfile
-tempfiles testfile.strip testfile.debug testfile.unstrip
+tempfiles testfile1.strip testfile2.strip testfile1.debug testfile2.debug testfile.unstrip
echo "Adding sections to testfile"
-testrun ${abs_builddir}/addsections 65535 testfile
+testrun ${abs_builddir}/addsections 65535 testfile ||
+{ echo "*** failure addsections testfile"; status=1; }
echo "Testing strip -o"
-testrun ${abs_top_builddir}/src/strip -o testfile.strip -f testfile.debug testfile
+testrun ${abs_top_builddir}/src/strip -o testfile1.strip -f testfile1.debug testfile ||
+{ echo "*** failure strip -o"; status=1; }
# Do the parts check out?
-echo "elflint testfile.strip"
-testrun ${abs_top_builddir}/src/elflint --gnu -q testfile.strip
-echo "elflint testfile.debug"
-testrun ${abs_top_builddir}/src/elflint --gnu -q -d testfile.debug
+echo "elflint testfile1.strip"
+testrun ${abs_top_builddir}/src/elflint --gnu -q testfile1.strip ||
+{ echo "*** failure elflint testfile1.strip"; status=1; }
+
+echo "elflint testfile1.debug"
+testrun ${abs_top_builddir}/src/elflint --gnu -q -d testfile1.debug ||
+{ echo "*** failure elflint testfile1.debug"; status=1; }
# Now test unstrip recombining those files.
echo "unstrip"
-testrun ${abs_top_builddir}/src/unstrip -o testfile.unstrip testfile.strip testfile.debug
+testrun ${abs_top_builddir}/src/unstrip -o testfile.unstrip testfile1.strip testfile1.debug ||
+{ echo "*** failure unstrip"; status=1; }
+
echo "elfcmp"
-testrun ${abs_top_builddir}/src/elfcmp testfile testfile.unstrip
+testrun ${abs_top_builddir}/src/elfcmp testfile testfile.unstrip ||
+{ echo "*** failure elfcmp"; status=1; }
# test strip -g
echo "Testing strip -g"
-testrun ${abs_top_builddir}/src/strip -g -o testfile.strip -f testfile.debug testfile
+testrun ${abs_top_builddir}/src/strip -g -o testfile2.strip -f testfile2.debug testfile ||
+{ echo "*** failure strip -g"; status=1; }
# Do the parts check out?
-echo "elflint testfile.strip"
-testrun ${abs_top_builddir}/src/elflint --gnu -q testfile.strip
-echo "elflint testfile.debug"
-testrun ${abs_top_builddir}/src/elflint --gnu -q -d testfile.debug
+echo "elflint testfile2.strip"
+testrun ${abs_top_builddir}/src/elflint --gnu -q testfile2.strip ||
+{ echo "*** failure elflint testfile2.strip"; status=1; }
+
+echo "elflint testfile2.debug"
+testrun ${abs_top_builddir}/src/elflint --gnu -q -d testfile2.debug ||
+{ echo "*** failure elflint testfile2.debug"; status=1; }
# Now strip "in-place" and make sure it is smaller.
-echo "TEsting strip in-place"
+echo "Testing strip in-place"
SIZE_original=$(stat -c%s testfile)
echo "original size $SIZE_original"
-testrun ${abs_top_builddir}/src/strip testfile
+testrun ${abs_top_builddir}/src/strip testfile ||
+{ echo "*** failure strip in-place"; status=1; }
+
SIZE_stripped=$(stat -c%s testfile)
echo "stripped size $SIZE_stripped"
test $SIZE_stripped -lt $SIZE_original ||
{ echo "*** failure in-place strip file not smaller $original"; exit 1; }
echo "elflint in-place"
-testrun ${abs_top_builddir}/src/elflint --gnu -q testfile
+testrun ${abs_top_builddir}/src/elflint --gnu -q testfile ||
+{ echo "*** failure elflint in-place"; status=1; }
-exit 0
+exit $status
diff --git a/tests/run-strip-version.sh b/tests/run-strip-version.sh
new file mode 100755
index 00000000..191e0aac
--- /dev/null
+++ b/tests/run-strip-version.sh
@@ -0,0 +1,58 @@
+#! /bin/sh
+# Copyright (C) 2018 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# Generated on s390x with an older gas (2.29.1) that generates
+# badly aligned version notes.
+#
+# = testfile-version.s =
+#
+# .section ".extra"
+# .byte 42
+#
+# .version "Sliding Snow"
+# .version "Hurr durr 3.1"
+#
+# .globl _start
+#_start:
+#
+# gcc -nostartfiles -nodefaultlibs -o testfile-version testfile-version.s
+
+testfiles testfile-version
+tempfiles debug.out elf.out
+
+testrun ${abs_top_builddir}/src/strip -o elf.out -f debug.out \
+ testfile-version
+
+testrun ${abs_top_builddir}/src/elflint --gnu elf.out
+testrun ${abs_top_builddir}/src/elflint --gnu --debug debug.out
+
+testrun_compare ${abs_top_builddir}/src/readelf -n debug.out <<\EOF
+
+Note section [ 1] '.note.gnu.build-id' of 36 bytes at offset 0xb0:
+ Owner Data size Type
+ GNU 20 GNU_BUILD_ID
+ Build ID: d3c84c0b307c06f50a37c6c0f59c82c4cb10720b
+
+Note section [ 3] '.note' of 56 bytes at offset 0xd5:
+ Owner Data size Type
+ Sliding Snow 0 VERSION
+ Hurr durr 3.1 0 VERSION
+EOF
+
+exit 0
diff --git a/tests/testfile-version.bz2 b/tests/testfile-version.bz2
new file mode 100755
index 00000000..b2c0c0ce
--- /dev/null
+++ b/tests/testfile-version.bz2
Binary files differ
diff --git a/tests/testfile_gnu_props.32be.o.bz2 b/tests/testfile_gnu_props.32be.o.bz2
new file mode 100644
index 00000000..60a39fe5
--- /dev/null
+++ b/tests/testfile_gnu_props.32be.o.bz2
Binary files differ
diff --git a/tests/testfile_gnu_props.32le.o.bz2 b/tests/testfile_gnu_props.32le.o.bz2
new file mode 100644
index 00000000..cb5d23c2
--- /dev/null
+++ b/tests/testfile_gnu_props.32le.o.bz2
Binary files differ
diff --git a/tests/testfile_gnu_props.64be.o.bz2 b/tests/testfile_gnu_props.64be.o.bz2
new file mode 100644
index 00000000..784c98bc
--- /dev/null
+++ b/tests/testfile_gnu_props.64be.o.bz2
Binary files differ
diff --git a/tests/testfile_gnu_props.64le.o.bz2 b/tests/testfile_gnu_props.64le.o.bz2
new file mode 100644
index 00000000..09df3d1e
--- /dev/null
+++ b/tests/testfile_gnu_props.64le.o.bz2
Binary files differ