aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--benchtests/Makefile7
-rw-r--r--benchtests/inet_ntop_ipv4-inputs1003
-rw-r--r--benchtests/inet_ntop_ipv4-source.c10
-rw-r--r--benchtests/inet_ntop_ipv6-inputs1003
-rw-r--r--benchtests/inet_ntop_ipv6-source.c10
-rw-r--r--elf/Makefile2
-rw-r--r--elf/rtld.c9
-rw-r--r--include/elf.h13
-rw-r--r--include/stdio.h4
-rw-r--r--inet/inet_ntoa.c7
-rw-r--r--malloc/malloc-check.c2
-rw-r--r--malloc/malloc-debug.c10
-rw-r--r--malloc/malloc.c95
-rw-r--r--manual/examples/memstrm.c2
-rw-r--r--manual/filesys.texi7
-rw-r--r--posix/Makefile2
-rw-r--r--posix/fnmatch_loop.c8
-rw-r--r--posix/tst-libc-message.c48
-rw-r--r--resolv/inet_ntop.c358
-rw-r--r--stdlib/Makefile1
-rw-r--r--sysdeps/ieee754/flt-32/s_modff.c2
-rw-r--r--sysdeps/mach/hurd/Makefile3
-rw-r--r--sysdeps/posix/libc_fatal.c32
-rw-r--r--sysdeps/powerpc/fpu/math-use-builtins-trunc.h9
-rw-r--r--sysdeps/powerpc/fpu/s_modf.c59
-rw-r--r--sysdeps/powerpc/fpu/s_modff.c55
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memmove.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/strlen.S2
-rw-r--r--sysdeps/unix/sysv/linux/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/Versions1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/cpu-features.c1
-rw-r--r--sysdeps/unix/sysv/linux/close_nocancel_nostatus.c28
-rw-r--r--sysdeps/unix/sysv/linux/not-cancel.h12
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysdep.h3
41 files changed, 2427 insertions, 398 deletions
diff --git a/benchtests/Makefile b/benchtests/Makefile
index 187b8a2..53f84bf 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -160,6 +160,11 @@ bench-pthread := \
thread_create \
# bench-pthread
+bench-resolv := \
+ inet_ntop_ipv4 \
+ inet_ntop_ipv6 \
+ # bench-resolv
+
LDLIBS-bench-pthread-mutex-lock += -lm
LDLIBS-bench-pthread-mutex-trylock += -lm
LDLIBS-bench-pthread-spin-lock += -lm
@@ -419,6 +424,7 @@ ifeq (${BENCHSET},)
bench := \
$(bench-math) \
$(bench-pthread) \
+ $(bench-resolv) \
$(bench-string) \
# bench
else
@@ -457,6 +463,7 @@ ifneq ($(strip ${BENCHSET}),)
VALIDBENCHSETNAMES := \
bench-math \
bench-pthread \
+ bench-resolv \
bench-string \
calloc-simple \
calloc-tcache \
diff --git a/benchtests/inet_ntop_ipv4-inputs b/benchtests/inet_ntop_ipv4-inputs
new file mode 100644
index 0000000..0ca5e20
--- /dev/null
+++ b/benchtests/inet_ntop_ipv4-inputs
@@ -0,0 +1,1003 @@
+## args: uint32_t
+## include-sources: inet_ntop_ipv4-source.c
+## name: workload-ipv4-random
+0xa5da31b5
+0xc0446e8b
+0x784b9c08
+0xb576afa1
+0x02d2ea9f
+0x4d82ba91
+0xd58a6a63
+0x931a078e
+0x8da553ca
+0xb995e341
+0xab1d3b82
+0x81b87ecf
+0xcd80ca63
+0x2896ed22
+0x8f207762
+0x9f944467
+0x3938ee1f
+0x248059e9
+0xf7333bf7
+0x711e3784
+0xe8becd9d
+0x3a2c5b73
+0x52cdb591
+0x6de2770a
+0x6d6019b1
+0x0cec9b4d
+0x0314b741
+0x3b8dbc18
+0x70becb0f
+0x1fbe2fa7
+0xbbf78a3c
+0x31ad5bbe
+0x5e4539a3
+0xf896555c
+0xe76bcfb5
+0xf8763851
+0xc309adee
+0x31abf300
+0xbba16c8e
+0x587ec525
+0x7507757e
+0xad7f20f3
+0x2e491154
+0xd1026261
+0x90d1bfe6
+0x21b62d60
+0x924edbc8
+0x06ded57e
+0x6e44ee05
+0x4d946fcc
+0x721b295c
+0x18bb6572
+0xdf64dc6f
+0x787912f1
+0x513254ae
+0x9a187f07
+0xbd19260d
+0x2d13f388
+0x72314a5e
+0xd49d1fe6
+0x58a21afd
+0x7265d9ad
+0x0db1242f
+0xda77990a
+0x225dd3f2
+0x7086fbc3
+0xcfa53a4c
+0xa95879e1
+0x1f22dcbf
+0xf2f95ae5
+0x32e55e15
+0x619cc022
+0xcbbc5903
+0x823cdaef
+0xbbc8e074
+0xd4b1abd1
+0xf4cc3b48
+0x54cadfc6
+0x7302fe22
+0x1866356d
+0x9af0f3d4
+0x150d45b7
+0x68d16537
+0x6f9ccab6
+0x30b5aa34
+0xb36e4558
+0xdf464fec
+0xfd553e8b
+0xe2d2b424
+0x401c0d14
+0xfeb219be
+0xe5503a5f
+0xf723b07c
+0x8f82f930
+0x91549eb0
+0xf15125b6
+0xfe746998
+0x5108da05
+0xc955eac0
+0x55132480
+0x6d476b2c
+0xec40f154
+0x91023884
+0xe1a9b815
+0x354daf94
+0x3dfed7ea
+0x2a4e8946
+0xcf9f3e6d
+0xa8041a9f
+0x4d116a0f
+0x31485a57
+0x2986e38a
+0x71c98c92
+0x95b1cf56
+0x02efa54a
+0x21d60c27
+0xe1ff084f
+0x9ea9d2a9
+0xa7a276fb
+0xdd540e04
+0xef5a28de
+0x959e2c45
+0x04e3297e
+0x7f353413
+0x98255f00
+0x8fef4195
+0xd1cf2a83
+0xe01c79fa
+0x8206c984
+0xa4d553b8
+0xb38cf863
+0xf9dc5da0
+0x740123a9
+0x469e28aa
+0xa94d5c0e
+0x099aefa6
+0x42f9ac05
+0xb5fa21a6
+0x605ba8b5
+0xd90eb999
+0xecaa6678
+0x876bd267
+0x584a9246
+0xe8bc8943
+0xba05331a
+0x5a1f8d08
+0x599a1d30
+0xc953fbc2
+0xa62b1bf5
+0x92f13ea2
+0x5260c6a6
+0x6f737ee7
+0x97ed7cf4
+0x1bafedd7
+0xf1c6ba92
+0xc738233a
+0x3c53e713
+0xc2c4f37e
+0x8922083b
+0xa699f915
+0x171a81f9
+0x9bd445c3
+0x582a213b
+0x7f9e6a68
+0xef4f3873
+0x61b6b3fb
+0xa1774a88
+0x5d142b71
+0xea8806dd
+0x37414744
+0x77d3e9a5
+0xdc2806a5
+0xec47420e
+0xaaf9388c
+0xe8ae4a58
+0xd68d3d03
+0x803cae48
+0xfff158dd
+0x0ab7b409
+0x3e1a797f
+0xcaa56e9c
+0xd3b4d996
+0xde20095e
+0x2e6820a4
+0x40e3b4ba
+0x038c5c95
+0x595bcab1
+0x25e23325
+0xb5debde0
+0xd95af591
+0x4750d367
+0xcaa82409
+0xbff0c5f8
+0x7ea63ac5
+0xacc6dce9
+0x08b1578e
+0x31544ded
+0xcbfaa140
+0xff149214
+0x29e4cdd9
+0x73277dba
+0x8150630e
+0xee66e89a
+0xff71f280
+0x2744a947
+0x9d71d581
+0x50d74a61
+0xb3f4cdb0
+0x2591b7c9
+0xa9f246ac
+0xaee36992
+0xa3777eca
+0xf642ae36
+0x9873836b
+0x0e9e0aa0
+0x1cb9a1ef
+0xeb6670fd
+0xe34ddf2b
+0x40cf1014
+0x8f8d532c
+0x2b1e2fec
+0x658f6ef4
+0x9117db64
+0xd8ffc94a
+0xbbce24da
+0x259029d5
+0xfff5bdc7
+0xfb7359e2
+0xf09be114
+0xda873a2b
+0x43ef9ca3
+0xafcfcce8
+0x4b14e050
+0xb7ef4c29
+0x2e8921fb
+0x1dc912d9
+0x946fd27e
+0xb6eb2bc3
+0x40ae2332
+0x373008ab
+0x8d1f0f0c
+0x1098cef6
+0x33dfa381
+0x6278717b
+0x8cfbfdc0
+0x6e4fafb5
+0x3e107d03
+0x8b82d5d4
+0xb3c70294
+0x4f5dfaf4
+0x13f862a1
+0xc03845f1
+0xe1645e9f
+0x620a157e
+0x27a318c5
+0xc6a1fd96
+0x01043a6c
+0xee82aebe
+0x77f9bcc7
+0xb0d67169
+0x5106f72a
+0xe1519086
+0x8e6d09c3
+0x2d35991b
+0xad33888a
+0xd281a2ce
+0x70094cdc
+0x09aee178
+0xb7a988d1
+0x7904d40a
+0xd505cebd
+0x5fc4744b
+0xd68e7e6e
+0x319c19db
+0x2c20f498
+0x5eefe1ac
+0x78107b15
+0x5d2c14a3
+0x8c352429
+0x98be10d6
+0x19fd3aa2
+0xdc151452
+0xd4f815ce
+0x40f9d4d8
+0x70922d99
+0xf3bc698a
+0x693e4c96
+0x5cd85948
+0x152565d9
+0x4673c6d2
+0xf26a8869
+0xeccdee1e
+0x2558149c
+0x32ed00cf
+0xccc8c08a
+0x6bb7e3ef
+0xd48bb23a
+0x11a7767a
+0x94e3fc39
+0x142ab220
+0x495ef56b
+0x5e0b1723
+0x7bf26602
+0xda933551
+0x3d9a9c93
+0x710a1aed
+0x0f3dbe35
+0x1fadfb03
+0xc42ce7ce
+0x34c4aac6
+0x422ea139
+0x9f37c92a
+0x28e80d7e
+0x7ac19552
+0x9b7c5bd2
+0x64ebdbf2
+0xdfcf3512
+0x1738765e
+0xd813cc0a
+0xf4d56f0e
+0x18f4dea7
+0xad277bf3
+0xa8fb80e7
+0xfbcd2419
+0x21f193f9
+0x2e9aef5d
+0x161cdc5b
+0x517e55ed
+0xb4cf6787
+0xc093cece
+0xa50fdca8
+0x0d8950d9
+0xd1d37d33
+0x822508b9
+0x60a3c4c6
+0x374d271b
+0xcea8f60e
+0xf4c0ccaa
+0x93affaab
+0x234a8e2e
+0xaf46d13e
+0xbdbd788f
+0x80c185d6
+0xade21b1f
+0xa9bb3117
+0x5f1e204f
+0x837b7278
+0xde83f661
+0x0e5a6d49
+0x06fdf305
+0xbad99c55
+0xf1c0b007
+0x6670d798
+0xaea379a9
+0xd2707d28
+0xf37ef4a8
+0x73e2534b
+0xe49f4fca
+0x91ad5854
+0x983540ce
+0x3179618f
+0xcb43e37d
+0x1a60cc04
+0x9cb2b42c
+0x5bc5d477
+0x298c8af2
+0x598fdb6e
+0xead6ed6e
+0x39264dc4
+0xbe2ded13
+0x9f75105a
+0xa854b5a8
+0x489686a8
+0x9f10a548
+0x4af5eb0b
+0x1c0d5f3d
+0x979eb255
+0x0a998273
+0x96d9cdfb
+0xb153737d
+0x8b8197b5
+0xb0af9d15
+0x53beec22
+0x47267074
+0xee08fee3
+0xa58581ba
+0x42c2d63d
+0x48a5105e
+0x4e1cb416
+0xb351b511
+0xf6da2304
+0x829f9f57
+0x06246258
+0xb78e2e76
+0xd7b3075e
+0x39af4dd5
+0x4de2271c
+0x2258853d
+0xfe857499
+0xed16ca3c
+0x51b77690
+0x91320d13
+0x8f7df385
+0x6563a1d8
+0xa9627f9f
+0xab8453ba
+0xf63b7678
+0xcbfc4991
+0x1ace8191
+0x4a341adf
+0x1e40a45d
+0x46d1807c
+0x92505c89
+0x6855a1ad
+0xa4fa9549
+0x1673a0a8
+0x6af29474
+0x760c8bc3
+0x48bc6521
+0xe871db92
+0x6fbcc444
+0x6dedbc0c
+0xde2d7351
+0x22b8fc16
+0x323bd522
+0xb935bcf5
+0x931e43c0
+0xdffa2198
+0xc1d19b85
+0xf60500b4
+0xd094c23d
+0xb7970257
+0x607f1b7d
+0x97e2eecb
+0x941fa489
+0xfae425c7
+0x64ffc9a3
+0x9482b9ba
+0xb489d435
+0x349452df
+0x5ffeec2d
+0x32b3584c
+0x3e548467
+0x530d9e32
+0x569353dd
+0xf4747702
+0xd856bd4e
+0x1bfc0426
+0x34e60c9b
+0xfe485d81
+0x7b184ad1
+0x1d307393
+0x4d21f87d
+0x492808a5
+0x9e857cbb
+0x6197f915
+0x80bb7d6a
+0x1aeb5dfb
+0xc7d4c551
+0x6c039c4f
+0x40f7c95e
+0x01322b6e
+0x35ee3d94
+0x399bfefc
+0x03b71c31
+0xa135ba00
+0x22e7b8bf
+0xd8e37293
+0x1ef10ddc
+0x5c4f977f
+0x32cbb232
+0x3746c6de
+0x7d37f74b
+0x2812718c
+0xa7c4873c
+0x8d8c7d79
+0x19007a1e
+0x4c785e68
+0xfb4849b3
+0x4c73c0c2
+0xe5ca4a89
+0x563af045
+0x08e67f32
+0x1af10bc6
+0xcb1697b0
+0xe4855c82
+0xbcf70a5c
+0x4bbec148
+0x7449d1c9
+0xe309b641
+0x72dab52e
+0xd73bcd11
+0xa50619ce
+0x9d13e90e
+0x15196926
+0x87f387a0
+0x0360b492
+0xbec6a221
+0x9d4f153f
+0x2ef40495
+0xa1fc8ec0
+0x3e7f36eb
+0xe5bdecc0
+0x2567db2e
+0x9e15fd71
+0xf9239150
+0xda4a4a28
+0xedb5b4b1
+0xb169302d
+0x81d1bc0a
+0xda01fc0f
+0xd9523ad0
+0x75c995cd
+0x4e7c5fd4
+0x1ccdacf4
+0x9e3409a6
+0xddb5f406
+0x39ae2258
+0x685eaef8
+0x27ec63ee
+0xc76f84fb
+0x0b1a116c
+0x7fcabb8a
+0xb6a1884b
+0x7c7a8a41
+0x8c741a5d
+0x6d61784e
+0x6fefe2d7
+0xdefa0e7f
+0xc8bf47d6
+0xd3972e7e
+0xf9f55896
+0x665b924a
+0x66f07987
+0x9a36fe39
+0xa52d6389
+0x985288c4
+0x776b1b14
+0x3b2b5df3
+0x8230278a
+0x4e20943b
+0xf194f3cd
+0x1923ba51
+0x0c161e54
+0x273c499c
+0x4893dfd1
+0x5d8d10c4
+0x912bccef
+0x37b3b8f2
+0xc9259773
+0xce403126
+0xaf67e43c
+0xb11526bb
+0x8e00961f
+0xd9309328
+0xf8fda5d4
+0x32cc9da3
+0x1ef0a26e
+0x1c2a4a6f
+0x40f252f5
+0x3c10be9f
+0xa4700a26
+0x6c2bf2db
+0xd6931843
+0x187457ca
+0x8c447237
+0x9b01fc11
+0x2e98780d
+0xa37b95e3
+0x22548e5f
+0x564ef6a8
+0x392dd4b2
+0xbbcad1ff
+0xa421f4ea
+0xba9af4b6
+0x471cdbcc
+0x4f1a388b
+0x2f9ace06
+0x03921467
+0x9cbfb693
+0x814ddaa6
+0x503644f8
+0x8695c3be
+0x61536ebb
+0x60c00244
+0x38f853d7
+0x57cb8520
+0xcfd2f868
+0xbaee2187
+0x9da049a8
+0x1f174bcd
+0x80e1d699
+0x14293276
+0xeb1a01b2
+0xaf04c079
+0xc2fd2db5
+0xdd55d0cc
+0x0c6cc6ef
+0xe13e3e22
+0xaad6f909
+0x69431d77
+0x614c55d5
+0xa8e99ef2
+0x5b69aae9
+0x1e793ce2
+0x33eac24f
+0x834aa80f
+0x243997d2
+0x85d08fd6
+0xe8bb04fb
+0x400b12f7
+0x4ac67a29
+0xc8c04fc3
+0xcbf8ef42
+0x3bbee941
+0xd46ed2fd
+0xdde37b5c
+0x0d853dee
+0xc94038f2
+0x8e573a21
+0x5e89e1db
+0xe273ddf1
+0xfadea3ca
+0xd2e51c7c
+0x2983594f
+0xe9db618a
+0xbb38a3c9
+0xe4abd34b
+0xfceacb94
+0x943aba94
+0x4f66eafd
+0xe6c0dce6
+0x7be21d78
+0x74337a51
+0xb68da494
+0x436c8bb8
+0x1d09c81a
+0xa62f5dda
+0x1aec137b
+0x2077e121
+0x352d8ed7
+0xa028eee9
+0x22813dfc
+0xcdf67fa5
+0xfda12a9d
+0x662d23dd
+0x9f56ece2
+0xa8bb39f8
+0xf3f4ca31
+0xda299ddb
+0xab321bc9
+0x79dce44b
+0x4bf75128
+0xb1fa5c10
+0xac19c3ca
+0xb2bd1cc7
+0x7bc86a3b
+0xe0c00cdf
+0xedbad3b3
+0x594f47ee
+0x075ab899
+0xd3960dd8
+0xc8b0d906
+0x03b349af
+0x1919a343
+0x104194ad
+0xb20aa561
+0xc45fa6e5
+0x3466ff76
+0x2a0a5f54
+0x76653805
+0x98bc7f9c
+0xe1139106
+0xa8389a71
+0x663cfff8
+0xd98cfad3
+0x8e17de21
+0x23f69152
+0x4b91dff2
+0x79ff012f
+0x5922c1c1
+0x116e15e1
+0xe36c89c2
+0x8dd2b853
+0x387b2f8c
+0xdbcbf47e
+0x6bf70fb9
+0x816db883
+0xa426dc13
+0x9a880e96
+0x67d5583d
+0xb3c12057
+0xdd0d22e3
+0x2fb43bbd
+0x340614c8
+0x1e044117
+0x35fc3d6a
+0x42fb3db4
+0xbd8ee31b
+0xd905e1ba
+0xe76fcf60
+0x261a3bf3
+0x08a5cdc0
+0x87dfba54
+0x374c0896
+0x9ef55ad4
+0x3a0614fe
+0x8d3372b2
+0x717f8d95
+0x1255bd89
+0xce2ecb9e
+0x877e33ab
+0x66dd165d
+0x0d6a31b2
+0x0846b0f3
+0x7a4f7992
+0xa946fdba
+0xfe7bd234
+0x787ec7f8
+0x593d2c82
+0xeef4a314
+0xa5acac01
+0x215492a2
+0x734e2de7
+0x05ddf8c5
+0x4a751f93
+0x2fc22c6e
+0x868492f4
+0x361f5df9
+0xe7882dae
+0xb5521966
+0xecfd094d
+0xade14805
+0xc6e74741
+0xe4334fac
+0xc79ddde0
+0x29e0bad2
+0xc26da1e5
+0x2ceac45e
+0x662dd065
+0xc7d732b6
+0xbedacf38
+0x7e178c0f
+0x250f56e5
+0x6d3cae24
+0x7be42fb5
+0x2f0181ba
+0xb07745f9
+0x36a363fc
+0xe104fa08
+0x6c92c379
+0xc1dab0eb
+0x012d850d
+0x8b30ded3
+0x1ceb4f74
+0xc6474a0d
+0x426b18a5
+0x8134b4b8
+0x9aba46a5
+0x0f615a99
+0xca2cb595
+0xde4ceaff
+0xb07c55b0
+0x6b461b61
+0x77d47aec
+0x713ccd15
+0x144f02a3
+0x98dbbec1
+0xd3cfa215
+0xe2be01d4
+0xa1e7612a
+0x4f63223d
+0x55a45013
+0x8d5f9526
+0x4f56252d
+0xe79994f6
+0xc1d2f899
+0x43fc9cb1
+0x6e593540
+0x1c480d66
+0x29a45a98
+0x1c778b80
+0x2fe5748b
+0xc42b1a8c
+0x84d82db6
+0xe234d779
+0x53cc2d3d
+0x2e0753ca
+0xea7c29ee
+0xd1baacdc
+0x0881e994
+0xa96f5873
+0x3a540ab0
+0x644c0daa
+0xfbed1c47
+0x0200b1bb
+0x19f3d066
+0x4d4a21d9
+0xc659473f
+0xb5afa485
+0xb1d92a44
+0x1ccffa38
+0xddadda5c
+0xb8478606
+0x7726d254
+0xb9f51015
+0xf1ccf5d0
+0xe9e4324d
+0x3330bacb
+0x75eb08d2
+0x9daaaca2
+0x877da369
+0xd41b8d85
+0x5aa83ea8
+0xfce6f734
+0xac2d5035
+0x847a0468
+0x3df04c98
+0xde4ed62a
+0x78a76589
+0x2b3215e7
+0x181f3a5e
+0x610f0e99
+0x6b95e44c
+0x990743d1
+0xb5ed2257
+0x3b516ec6
+0x71bc6e83
+0x447665fc
+0x0c1d0de5
+0x66b2a479
+0xea2502aa
+0xce222a1c
+0x6974ee5c
+0x74470d06
+0x1a208879
+0x107f95b1
+0xe5975ed3
+0x96928e1c
+0x7fe84e1b
+0xc85a6056
+0x4a005cfd
+0xd7d97bb7
+0x9a23c5b0
+0xd0b7f4a9
+0xfd61a22a
+0xf8107003
+0xec63357c
+0xe89fc352
+0xabdfaf5e
+0x7c161c96
+0x9ea703d6
+0x556ae863
+0x03695ff1
+0x5ba06bc4
+0x907dacbb
+0xba297579
+0x983c7e47
+0xf1d3ce7e
+0x9274a5ef
+0xf4dae517
+0xc2d11106
+0x08323755
+0x585c7faa
+0xa36d0de2
+0x35ec9280
+0x64709d92
+0x5100906a
+0x7671dda5
+0x73f81121
+0xf28246e2
+0x08466cdf
+0x537e6791
+0x13efc923
+0xe9d24e9d
+0xd22fc0a4
+0xd59be5c9
+0xa3e52d63
+0x7464d9f3
+0x866e5618
+0xe75e46b6
+0x2cd15f24
+0x07494a14
+0x5b34be38
+0x2da10a27
+0x7b827711
+0xc2b8bdb8
+0x9f8deb86
+0x37b7e667
+0xc54692dd
+0x44179846
+0xd326fad8
+0x71a9d932
+0x7b8f17fe
+0x13d9ce59
+0x4a054101
+0xf866d958
+0xcd730d08
+0xb82ea973
+0x99800ca3
+0x44090dc0
+0x07272d2c
+0xc577fad1
+0x81c656fb
+0x543ebd82
+0x63d9f998
+0x41cad4d1
+0x5ec695a6
+0x6d2e8c4a
+0x9d47a964
+0xe9e19be0
+0x87524147
+0x6d94b687
+0x28998c92
+0xd5222e46
+0xa06f762d
+0x19f1b572
+0x7cbd4b3b
+0x067f6470
+0xd2e4a695
+0x003c78df
+0x274a4992
+0x7ff14a7f
+0x4179cb9c
+0x395eab4d
+0xec0723cf
+0x48e9197b
+0x812fc24a
+0x8b7e1a3d
+0x7a65730d
+0xcf036e17
+0x18437977
+0x1b45a0ca
+0xdc52cc7b
+0x7eec75bf
+0xa19d3e46
+0x3ef0de98
+0x9004569b
+0x2e8bc8b2
+0xba0d6d10
+0x1645bff8
+0x842bba26
+0x4661f344
+0x0ee549d6
+0xd09b8818
+0xac8d33e8
+0x553e4f3e
+0x1d0f1368
+0x3135e79a
+0x415d934e
+0xa81d576a
+0xb3828841
+0x6afed044
+0x5b9d934c
+0xe13c6e07
+0xc9a2623c
+0x900b7d1f
+0x4dc8f0b7
+0x8af660e2
+0x942b98ec
+0xc1c35ac5
+0x8bc17e39
+0x9da5b510
+0xaf90fff9
+0x890cb584
+0x4edb77a1
+0x200de01e
+0x3b94fc5a
+0x977a6bdd
+0xed432809
+0x66d6f6b3
+0x3aee997f
+0xe0dedca6
+0x0eba9d2c
+0x2b77cd8b
+0xc0a0387e
+0x5a4288d0
+0x8e1a6748
+0x88152e2a
+0x8922cc17
+0x3fc651d8
+0x0d7ad8cf
+0x0f2ddbf6
+0xefe1d16f
+0xab9bcacc
+0x3f12fac8
+0xa7907925
+0xf2877b7c
+0xdf86ae85
+0x2b10f4ad
+0x1c66eccd
+0x0ffe0460
+0x54b1d473
+0x4e0b1b78
+0xebf6a094
+0x210dd5a3
+0x02b08cd8
+0x04450c50
+0x6aa55f9a
+0x1528b220
diff --git a/benchtests/inet_ntop_ipv4-source.c b/benchtests/inet_ntop_ipv4-source.c
new file mode 100644
index 0000000..c595c47
--- /dev/null
+++ b/benchtests/inet_ntop_ipv4-source.c
@@ -0,0 +1,10 @@
+#include <arpa/inet.h>
+#include <stdint.h>
+
+static void
+inet_ntop_ipv4 (uint32_t addr)
+{
+ struct in_addr saddr = { .s_addr = addr };
+ char dst[INET_ADDRSTRLEN];
+ inet_ntop (AF_INET, &saddr, dst, sizeof dst);
+}
diff --git a/benchtests/inet_ntop_ipv6-inputs b/benchtests/inet_ntop_ipv6-inputs
new file mode 100644
index 0000000..69bb4db
--- /dev/null
+++ b/benchtests/inet_ntop_ipv6-inputs
@@ -0,0 +1,1003 @@
+## args: uint32_t:uint32_t:uint32_t:uint32_t
+## include-sources: inet_ntop_ipv6-source.c
+## name: workload-ipv6-random
+0xbd9f474b, 0xfde382d2, 0x16cb0b00, 0x9b234d91
+0xd12b7592, 0xe1f00174, 0xc99ea9f7, 0x204055b4
+0x2c9c4b4e, 0x408d34aa, 0xc325a53f, 0x456d5bcc
+0xc3ee43a6, 0xa26fec15, 0xced19793, 0x24524e9f
+0xa8a1b792, 0x3bd30523, 0x14026fee, 0x483a3515
+0x6325647a, 0x2a97e521, 0x81998a58, 0x2a1b68a9
+0xfd782a5a, 0x9d63cc77, 0x1c88d0b0, 0x890c6b7a
+0x1a27c6a3, 0xdf20c28e, 0xd4b415e8, 0xc83097f2
+0x545c2260, 0x83162b50, 0xe1d7dc29, 0xe3defcee
+0x2697cb3e, 0x6210c389, 0x1d47df5b, 0x3ac1df60
+0xe2f0e379, 0x23763a2c, 0x147abbf8, 0x7e443204
+0xf9b0565c, 0xe5b8fed7, 0xd6aefdb4, 0x33ea6a05
+0xa529fdde, 0xcf1763ce, 0x296954f1, 0xcb07ade5
+0x9df1742d, 0x589fd1b8, 0xeee576aa, 0x2dec41a2
+0xc345dad9, 0x8745413c, 0x7684a5d6, 0x19ab74bf
+0x29d0331a, 0xbee93c3e, 0xd700c312, 0xfebee12d
+0xd7780afd, 0x336e4c2, 0xcf2c8adb, 0xc6159eee
+0x33ea087a, 0x36b335a0, 0x7b476c82, 0x4d4dce7c
+0x5eb59b20, 0xeb76a509, 0xc56b34ad, 0x39d3f8e3
+0x63f36e8f, 0xd9bd4f4d, 0x39e11967, 0x90518f86
+0x1d3bc49, 0x84774417, 0x98abf06e, 0x1889248f
+0x6013682, 0xbf4461db, 0xe46e22c5, 0xac7c9ab2
+0xe15186b9, 0x9f796e63, 0x8491e74c, 0x1b1f500c
+0x8e37425e, 0xb77127b, 0xeb5f7c67, 0xb9988376
+0xafaef488, 0xfd9158fe, 0x34860785, 0xef4ced11
+0xc579a321, 0x6f756b01, 0x91c9df81, 0x8b64ff30
+0xde13a52a, 0xa3d16cc9, 0x29fa138d, 0xfb732cf5
+0xdffa214a, 0xdd75a993, 0x24d2348d, 0x14a7746c
+0x6797d857, 0x23b0273a, 0xc4d67560, 0x570670af
+0x21bdbdcf, 0x963f5e5e, 0xab40422b, 0xdb2404c2
+0x8c903d31, 0x2a0fb212, 0x966b5ee0, 0xd5c807f5
+0xd82db637, 0xf08fd78e, 0xb1fa360f, 0x2ab14dc9
+0x8f78bcfb, 0x2eec02dd, 0xd5adba4c, 0xa7f2e551
+0x71ba0ce4, 0xf90d91ec, 0x377698a5, 0x378d8603
+0xef081070, 0x7e5671c8, 0x35976da1, 0x1e47b84
+0xdea1b54b, 0x5739f249, 0xe8454d07, 0xb8fbca7a
+0xd2a63fdd, 0x4766b033, 0xbe9735ce, 0xd0730cea
+0x4af1f5c1, 0x1ff01d15, 0xd47a2722, 0x5cfa2046
+0xff9f9f75, 0xe1615e29, 0x66cd0d88, 0x676489f4
+0xaff6f421, 0xb6c759c8, 0x98e6510f, 0x59d1589e
+0xf1e93cdf, 0xbf4a2c1, 0xabe705e9, 0x8c80551f
+0x8a2be9ed, 0xfd0ee28a, 0xb380684c, 0x88dd45d7
+0xe9e953ea, 0xa3079df8, 0x15d96297, 0x9f974c0c
+0xd8de9f0d, 0xc36905e8, 0xacd4463f, 0x5637f351
+0x1b829647, 0x8d2b0359, 0x3e5b4b90, 0x5405423c
+0x2d6ef86b, 0x1f609aeb, 0xf0f6bb65, 0xefd9c43b
+0x848dbfff, 0xe0f3531d, 0x2eefd0f6, 0xdbfe8663
+0x45dc79d3, 0x62dc551e, 0x811bcd3d, 0x3f8d9a6a
+0x174a7cfe, 0xbc7528c, 0xc413699c, 0x5e4e6e7f
+0x41c83bfe, 0x1bae5bc0, 0xbd36fcb3, 0xc710625f
+0x9e936eeb, 0x5402cac2, 0xb3060f49, 0x2189610c
+0x3e030d95, 0x5e5563c4, 0xd61e6929, 0x9962d7d8
+0xfa0ed0e1, 0x3e8dbfc6, 0x93f88980, 0x92936be8
+0x7d82dedd, 0x8921d7d5, 0xc530156a, 0xfe42f582
+0x606b6a95, 0x7f40d8cb, 0x3ffcecee, 0x4dc8071e
+0x93f3e7c, 0xa252c16e, 0xf42fd5fb, 0x7457353f
+0x54b57d5e, 0xdaf92c2b, 0xa8eafbab, 0xda96b806
+0x78f7954f, 0x5052ad7b, 0xeb6b2a76, 0xa5ece42a
+0xa6b5135b, 0xf5d06b09, 0x2287772e, 0x9aeae6cd
+0x7179ce31, 0x47ef279d, 0x729d7cf, 0xf400a519
+0x6b92425b, 0xedb7a264, 0x80d70fe2, 0xd2b68bae
+0x391543dd, 0x89421cff, 0xfea7a70f, 0xdd4791c3
+0x3653b93d, 0x7f28269f, 0x29826fbe, 0x23e4ce30
+0x82e39307, 0x8bc31256, 0x15f53c16, 0xa060fedc
+0xb552e1b2, 0xe99677ba, 0x48206f04, 0xecec5430
+0xb9881a63, 0x7b922a29, 0xaf22d00e, 0xbe610c
+0x5307d975, 0x4894a67e, 0x75400f1b, 0x87a95c1b
+0x1eeec7c0, 0xee7039e2, 0xfd23adaa, 0x82e64cb2
+0xf02e05ff, 0x69315980, 0xd2c5eb23, 0xcab646fd
+0x3269d17c, 0xcd057acc, 0xfdcc308a, 0x8d33519
+0xa58b5939, 0x2830186f, 0xd489bdd7, 0xd90080d8
+0x70f19399, 0xdf4be38, 0xb7d369e7, 0xeec0feb4
+0xe1f76dd6, 0xe8736682, 0xa4333fde, 0xd9237fe7
+0xbe0b673b, 0xd2efdd82, 0x899568ae, 0x33f54e39
+0x4dbf00b9, 0xcd098c95, 0xdeda9125, 0x564be620
+0x1f46fc8c, 0x8a227b39, 0xc951aad2, 0xa55d79ee
+0x8e3c6fcf, 0x71a48f78, 0xae687478, 0xbb19a553
+0xe6a00332, 0x3bae39d6, 0xc2272bd5, 0x927139fd
+0x59ac6756, 0x131b13ad, 0x39042c49, 0x861e867e
+0xad21777c, 0x2942f36b, 0x118aff9b, 0x1359a258
+0x44a835ac, 0x827cda6c, 0xc99b642c, 0x40836a8b
+0xf8252dda, 0xcac33381, 0x26ec307c, 0x97a9c486
+0xa86dbf91, 0x3cbc222f, 0x167e91f7, 0x4607a81c
+0xc31a9ac0, 0xb491d2ed, 0xd8452c37, 0xac26308
+0x34e5e9c8, 0x1f7dcf6, 0x26d0a40f, 0xf2455d40
+0x58ed7cdd, 0x8d09de09, 0x5791a5, 0xe7863f68
+0xd168ed25, 0x7d028913, 0xcbf4511a, 0x9e667bce
+0x537c00c1, 0x9d79eb05, 0xb0af9027, 0xbb055470
+0xed3e65d2, 0x4419d2fd, 0xb4935ebd, 0xe914a01d
+0xb6984616, 0x1ce5581d, 0x338850b4, 0x80ef6682
+0xd6605e62, 0x9603bf7e, 0xce7e6fc7, 0x7120a164
+0x33b9739e, 0x8c1ac2de, 0x84fd431c, 0xaad432a5
+0xc7ab0b0e, 0x7fd488d2, 0x81b8f65f, 0xb692f42c
+0xb81a4739, 0xf2dd9ad5, 0xf9fce237, 0xa0347b58
+0x97d70f40, 0x285daec1, 0x8cf631b, 0x61a906ab
+0x2a29c841, 0x97350602, 0x3e2705f4, 0xb1cc6dbf
+0x53d3a7ed, 0x29d8c53b, 0x6434402c, 0xe3ba36b4
+0xb034bee8, 0xb88e6e87, 0xcf1a41d3, 0xb657588d
+0xa50ba997, 0x2fe7ebc5, 0xbaf8ed10, 0xcab8b0f5
+0xacc211c7, 0xad6d796, 0xabb3b3c6, 0x1e5c437b
+0xc76b1163, 0x91a642d9, 0xd211dfb6, 0x4e932d48
+0x8f6f788e, 0x266b94e0, 0xf632e05c, 0x68cdae60
+0x59d3d501, 0xb28c9817, 0xaba3f022, 0x1e4bd55e
+0x24c2438a, 0x8aece7e6, 0xdec43ed7, 0x28354f13
+0xfb35a016, 0xac31c1e5, 0xd9a19e00, 0xbd7668f1
+0xdc170096, 0xe472d6a2, 0x4b672693, 0x331d711a
+0x35ec6ad4, 0xea4a89e2, 0x37fc7bab, 0xf68baa15
+0x5403f8f2, 0xb37b2f00, 0xf23c3c41, 0xabd3d234
+0x16588c62, 0x4693398, 0xd2a4e935, 0xe91b160d
+0x44daac94, 0x8a4fe8cd, 0x1041732e, 0x2d15e3e0
+0x379a33d6, 0x2cc3c03, 0x21207938, 0x172680a2
+0x9b186d0f, 0xc9925f50, 0x681b31d2, 0xb1ef2284
+0xe96a5bd3, 0x68188d73, 0x6f9318e8, 0x1d3f9ae3
+0xb7908d79, 0x19ca19e5, 0xc51cadfd, 0x9cdd65b2
+0x4ca8fe21, 0x67fd0155, 0x7b515e65, 0xd9bda1de
+0x37f1d602, 0x67fd176a, 0x78986154, 0xbc7dd56c
+0x78fe18c3, 0x5de1ce47, 0x661b953, 0x1779eaba
+0x95a167be, 0x8af3177a, 0xb5f736b5, 0xdda134bc
+0xdaac0b73, 0x36ad1710, 0xa2553bf1, 0x528a213c
+0xbf633d66, 0xb9191ea5, 0x6978e517, 0x9b7f9cc4
+0x22910f46, 0x290b00b0, 0x17dce907, 0xcfeffbf
+0x4ca4c531, 0xba1c5e27, 0x21b34182, 0xdfe22981
+0x9f4163b1, 0xd9079607, 0x19368fed, 0xfee01412
+0xe4b4335a, 0x90e57091, 0xd6621c03, 0x9f9167a
+0x4a268d0d, 0xa2578f95, 0x8a2726ed, 0x2371ed6e
+0xab7108c1, 0x7eda438d, 0x91c9e46f, 0x7bd4a534
+0x882a8c9, 0x5ee2ff0e, 0xfbdcb102, 0x626d1103
+0xae8f3624, 0xd0914fe1, 0xa5e054e3, 0x5fc4a6f5
+0xfcdd708e, 0x1898f392, 0xee49523, 0xb231c2ef
+0xd8f7c223, 0xc0da65f2, 0xa39780c9, 0x7561692d
+0x3566b893, 0xa6c69db4, 0x4fe06eaf, 0x8ac2d1ae
+0x55ec082d, 0xc20a63b4, 0x47014dc2, 0x804efc5f
+0x8f06317, 0x32fd3d78, 0xb5c59e6e, 0x6acd7921
+0x8a43ddb, 0x2b4098f2, 0x2f54c2b6, 0x47cfb71d
+0xdf0b31f0, 0x53e6cea0, 0x5edb55eb, 0xb7fece2
+0x14615f59, 0x27b6f7a7, 0x91165128, 0xd33ebcb1
+0x68a2c8d4, 0x29ba37e5, 0xdcb4b3b2, 0x80fcd42f
+0xf83e6f8d, 0x3816547c, 0x21d1e0e5, 0x7c28c98a
+0x583a48b0, 0x1b57ca21, 0x8dfa36c, 0x255b515c
+0xccf35afd, 0x6d844d83, 0x99110a94, 0x81fb6b1
+0x136af512, 0xaef76f2, 0xf4c2385e, 0xf179553e
+0x9d537bbe, 0x9fce7be0, 0x68b424a8, 0xd97f9acf
+0xce28efee, 0x104fac55, 0x9260b465, 0x89f37fee
+0x8cb280af, 0xb015ace8, 0xb82853c9, 0x54165987
+0x3b6c1810, 0x5474a531, 0xbd1a3ffd, 0x8178c7b7
+0xff6736c1, 0x165fb1e4, 0x5b74d02c, 0x94dcdaf1
+0xb4a2a131, 0xc3027508, 0x771d3091, 0xce50e274
+0x3a3ed3bd, 0x8a4cb423, 0x18a4d743, 0x5fa3147c
+0x1ab6a099, 0xaf14b761, 0x862d0c1, 0x8b81f350
+0x24a6f5ff, 0xcb53948, 0x8932f527, 0xe30c64a3
+0x7d002cf4, 0xf847abbe, 0xf00833e7, 0xb841ba1d
+0x9b4895a3, 0xc601250, 0x62d0eef5, 0x79462b3c
+0x25effcc6, 0x7868ffbe, 0x752eb87a, 0x7e2c7faa
+0x9749ceeb, 0x72b92ae6, 0xebdaa22, 0x693b5056
+0xf884ffde, 0x85f908a1, 0xe5d88a30, 0xd7c83ded
+0x5b6c0f4d, 0x78319ab, 0xaa2831cc, 0x150957ea
+0xe2628ea7, 0x9dbfc0d5, 0x21438d50, 0xbcc50e2d
+0x9b541ce1, 0x4448d3e8, 0x910f8834, 0x3fbe9987
+0xd80d397d, 0x926a9b78, 0x9a0c325b, 0xdea1b833
+0xb5725a2f, 0x56ba34b7, 0x870d4543, 0xc6c4d956
+0x78ea0b4c, 0x922e211a, 0x9f6bc0c0, 0x7a4ee798
+0xd1f14857, 0xed9d9ed9, 0xcf2d39f9, 0x2835a355
+0x3eb7a90d, 0x1df8e934, 0x44952424, 0x6e0f94b9
+0x73ab84b9, 0xc8874557, 0x19596bd7, 0x4b709955
+0xfac8a8af, 0xbefd1d16, 0x5a98a82a, 0x7c76d88
+0x434a2e96, 0x1bfd37e6, 0x4c7fa3bc, 0xeb182ac
+0x22cf129c, 0x2330cc48, 0xf8188529, 0xacc3f851
+0x930c37ef, 0xdb90065b, 0xa3b15671, 0x351e5c8d
+0x424e202b, 0xaed5a7f4, 0x4a504fb0, 0x8f969f84
+0xa482185a, 0xc4302500, 0x12ffa83f, 0x5f08425b
+0xb2c64f59, 0xfc29c24b, 0x92b5ca02, 0xa803823c
+0x18b8f646, 0xaa02f091, 0x2620d1f8, 0x9d805e86
+0xc018b81d, 0x4fbfa15c, 0xfc056a07, 0xa7b30d50
+0x76ac8cdb, 0x3e063aa3, 0xac239672, 0xd16764c0
+0x6d40c135, 0xc7302076, 0xa70201d6, 0x6991a045
+0x9eb61c4e, 0x8bf8dfd5, 0xcb636346, 0xdbaa0243
+0x29651df6, 0xfd9c3a0c, 0xa122089, 0xfd1df17
+0x33f3218b, 0xb4836cf6, 0x4a5e2ac8, 0x3c0f1f2d
+0x879fb8d9, 0xf8c38cea, 0x5e95b279, 0xffae9fa3
+0x5d4516c4, 0xff353935, 0xf19dd00c, 0x4d810e66
+0xbbd67859, 0xde9a326f, 0x671f5622, 0xf5ef5600
+0x85c00b1e, 0xb39589b8, 0x1bd1d5f2, 0xab363d4e
+0xee3fe8ea, 0x28d29a10, 0x17f51f68, 0x63ca9441
+0x859ce27f, 0x871bfcaf, 0xa5203c7b, 0x46175512
+0x32361523, 0x4c0e79f2, 0x29eda94, 0xa9840241
+0x8faeeabe, 0x8f3a9de9, 0xef643936, 0x9fa8f9be
+0x35cc55f6, 0xcc7c7a0e, 0x297bb3e1, 0xdb5d4e03
+0x4d8dceb9, 0x70148563, 0x9b04da64, 0x5ffcf932
+0xed373548, 0x49a4e038, 0xc12c8311, 0x5f4a8b75
+0x89af58f2, 0xaa455a7b, 0x8911fc26, 0xc05e76bc
+0xa9736f59, 0xcea9aee2, 0xf40afb52, 0x6e1bc405
+0xd62b5dd0, 0xfd335653, 0x2b2cd29d, 0x6f22cc7a
+0x22ddde88, 0xc38ff07b, 0x426fec57, 0xacff773d
+0xee681325, 0x1d9b52ae, 0x659a7f83, 0x60ba682c
+0xccaae62b, 0x42eb5ef6, 0x1fa3b03e, 0x8cd9b22f
+0x86b86b26, 0x11ee0672, 0x2d4e19e5, 0x8ab91734
+0x8ac4fc04, 0x7264e3c1, 0xaf855cc1, 0xab9c475c
+0xa36db77f, 0xd4b4ee5c, 0x403fb29f, 0x6e1e42ec
+0xda6e091d, 0x6cff1b43, 0xf99978b, 0x19a1c211
+0xb72886dc, 0x6d50fdac, 0x5afa580b, 0x11bae67e
+0xc4c3d05d, 0x1f4b0cdb, 0xb68672b4, 0x3ef0f9a6
+0xd22573b5, 0x152d20a, 0x68f48ec, 0xe23ecbf9
+0x373bb124, 0x5b379993, 0x33be8e67, 0xf4f0793e
+0xc75e1a8b, 0x17ea774, 0xa1967301, 0x9b088e66
+0x5220286, 0xfe0366a6, 0x7db08c47, 0x6af61d06
+0x5109ceb3, 0xc2a32347, 0x497daee2, 0x97240c78
+0xd762659, 0x569e6641, 0xfd0c5b5d, 0x1a0b4435
+0x92693f5d, 0x9ce42f0b, 0x4e789f53, 0x8c222a81
+0xee801ed3, 0xd94bcb2c, 0xb60b3b00, 0x7ebbc78d
+0x51ed4a51, 0x5df7a9df, 0x2fb0116, 0x441a97f1
+0x6e7d2a9a, 0xb86f925e, 0xae49a7f5, 0xb4cd5e15
+0x1a81f24b, 0x1d497c6c, 0x76218902, 0x21709933
+0x2dd09b35, 0xf25ede10, 0x541fdd77, 0x62ff37b9
+0x3bf21978, 0xd74f1185, 0xbc8ac99f, 0xde71ad53
+0x71a5c8ed, 0x15208271, 0xb826e59a, 0x6bd8c57f
+0x1ccbef2a, 0xf326371a, 0xe09fdff0, 0xb8dbad93
+0xc7dbbc2b, 0x6181becb, 0x565d6ff, 0xc34ee769
+0x1e6c149d, 0x30e30ef1, 0x1b39080c, 0xbdcf5405
+0xf116f011, 0x829eb8b3, 0x9b4829e7, 0x2a94ed53
+0x94e07aa1, 0x81aa2457, 0x6036cd55, 0x4c5e01fe
+0xa92cfb5b, 0xfdcdf83d, 0x6cd312b1, 0x90835d34
+0x94951caa, 0xaec2995f, 0x4c7e050, 0x4a46a70f
+0x415c9aea, 0x6d8f9225, 0x92c49240, 0x635c5e05
+0xb7da2084, 0xa4ceb6a4, 0x9ee53754, 0x9bac543d
+0xbcb61a3d, 0x0a209f, 0xc5d14e96, 0x5aae6429
+0x97f39972, 0xdf98317e, 0x326e422c, 0x9b1c4e19
+0x26e7f90d, 0x592bb6b9, 0x5403ea9c, 0xadbdc615
+0x72771b77, 0x4b987a80, 0xc1c56e86, 0xa224efbd
+0xb04ba885, 0x925a9646, 0x2d7d4ae7, 0x273cfc81
+0xb7f1d2da, 0xb223722, 0xe7688d04, 0xd1198c14
+0xd55a5f16, 0xb51512ff, 0xc68ef463, 0x79d319b6
+0x1b00a2ab, 0xbe6e3f07, 0xd594fe11, 0x3d2dd7c1
+0x28810f8a, 0x1da2d4ce, 0x4dbe7205, 0xc6431ff2
+0x3241aa6c, 0x381921ec, 0xc164cf03, 0x5dbfba8f
+0xac494cf8, 0x5ed43eee, 0x8d843cf3, 0x7c87f04c
+0xbc1b58c8, 0x851533d, 0x79534cdb, 0x9ff7c0e2
+0x2e5d6cd6, 0x888875ec, 0x1fad7a31, 0xbea0a42d
+0xcf6fdaca, 0x140207c6, 0xcf0af10f, 0x71a69c42
+0xf95618c1, 0x74d1494f, 0xcf2d688f, 0xface6c1c
+0x6e17f14c, 0xab9cb4e1, 0x5f0fc7ac, 0xf465c570
+0x943216e0, 0xde0e38ad, 0x729e69d1, 0x30b44c39
+0xfae0da2c, 0xa12956a1, 0xae7299d, 0xf1e2311b
+0x7d81571, 0x4778ae4b, 0x62c30846, 0x34a88f69
+0xf03972bb, 0x4218a376, 0xf6762118, 0x23a2213
+0x79443a0a, 0x68f11b15, 0x98cf449b, 0x1d5d508a
+0x27cd1d30, 0xf92063f0, 0xf71edb35, 0xe866dcb4
+0x7b9b9ef3, 0x61b0fc22, 0x2a728ee8, 0x3f2e7c3f
+0xd3b77800, 0xbf34704c, 0xab77fd56, 0x664dd5bb
+0x73a057a4, 0x1434a17, 0x12e1dfce, 0x4178e65
+0x111eda27, 0xb3abae02, 0xff7fea7e, 0x6d24abec
+0x48e8a019, 0x73f257c4, 0x73d3269f, 0x56e6311d
+0x3d10812f, 0x892f2de3, 0x2a16ca7a, 0x92e5d3fd
+0xd5bef4c9, 0x6f5e4db1, 0xcd35c033, 0xbd78c72
+0xd5151606, 0xac129527, 0xe6bc7fd1, 0xa96d60d5
+0xb565de7f, 0x6c0ab1c5, 0x78a9e7e5, 0xcbe00dc5
+0xc87c3032, 0xc43df43e, 0x8ea6fca6, 0x61aefa28
+0x96b80947, 0x74133fe1, 0x26404df6, 0xd764d917
+0xf098a512, 0x24194cfb, 0xdde22f8b, 0xd269ef5c
+0x3f967fa8, 0x5d9483cf, 0x70923734, 0x4f2b73b4
+0xf664a529, 0x229fd71c, 0x92bf87a2, 0x5d1532fd
+0xabe3b5ae, 0x75fb5f67, 0x7312feb6, 0x16cdd974
+0x8e62b5a8, 0x7054d0d2, 0x2ed032e8, 0xc91147eb
+0x7dbddc71, 0x6f095c1c, 0x98a48983, 0x6b1aed1
+0xa6d6ae3c, 0x20f4888d, 0xa2ff7321, 0x4ccde447
+0x92a0955b, 0xc62db688, 0xfa7591f1, 0x19a8c001
+0x559b18b7, 0x6fe12e2c, 0x18bdf657, 0x79398635
+0xea30633f, 0x207f6d0f, 0x5be67f32, 0x335c9d3f
+0x9ba6347f, 0xebfb5673, 0x63ddf16e, 0x6f134ae2
+0xbfefb776, 0xa4617d14, 0x9c7411a4, 0x291dcf08
+0x1954aed9, 0xe3c7925c, 0x41374a00, 0xa7cc2832
+0xdd54629f, 0xab81b50c, 0x7ab1cbd, 0xea8dab11
+0xe6f93c8d, 0xcbab4f09, 0x8f1fe8fe, 0xee01ede6
+0x85267e8c, 0x61e5330b, 0x12542982, 0xfdf1f303
+0x42095d4a, 0xeb3fca7, 0xa93cdc56, 0x400469eb
+0x444c470e, 0x89852958, 0x51e0c508, 0x295262df
+0xcc722bb9, 0xb541f8c8, 0x864aeae0, 0x414761f0
+0x4ad9af72, 0x87496bbb, 0xec3ca2ef, 0x5f4aa9ce
+0xd17c3608, 0x56e1c14a, 0xdf73a8fd, 0xd13d97b0
+0x83a853a6, 0xfac6f300, 0x25db14f4, 0xfb598c90
+0xf5d53667, 0x931bc23a, 0xcd3e2bd6, 0xe05a1ba6
+0xf6d2e4ea, 0xd477bec2, 0xf658d119, 0xf61bbcd8
+0x536f644, 0x4818a8aa, 0xc54e4e71, 0xfbaf1a18
+0x93b1aee6, 0xa1877c6c, 0xb183713b, 0xfbdcd409
+0x6ccf822b, 0xfe8dba32, 0x47e13049, 0xbf27c3bf
+0xd54e9fa6, 0x86e31082, 0xac5623d0, 0xee5295c5
+0xe9eea95, 0x4d8a5a85, 0x1b8174d4, 0xcb92e7a7
+0x7f04f54, 0xdb481c2e, 0x831271d0, 0xc5eb0011
+0x20c55390, 0x48cbac3a, 0xf44f45f7, 0x7438e130
+0x38ee02cd, 0x33037bfb, 0xb52f2088, 0x9ea5417a
+0x26fd4ec1, 0xee9abe8, 0xe17dfcca, 0x9b000fa5
+0xa6db8a79, 0x638473d5, 0xed3099bb, 0x57e43a3a
+0x246a9aad, 0x8b19abeb, 0x24686a81, 0x7d50e9ad
+0x9ef9fddb, 0x454c0453, 0xee2a77d4, 0x93df806
+0xb054473, 0x545b98c4, 0xfa2b2b06, 0x2795e22b
+0xffb13319, 0x3b996846, 0xa7d1055a, 0x6e95d991
+0x75ec8fb8, 0x1493fc08, 0x9d8b575f, 0x1222e6a5
+0x6e630ffa, 0x2030561d, 0xe9c32ea9, 0x7ce66f69
+0xa9b0fac2, 0xe67087a1, 0xaa024d95, 0xbc5069fb
+0xffed84b3, 0xb64d86c0, 0x7a6a0cf9, 0xbd412ad6
+0xc17356ff, 0x613ab3d0, 0x5e419312, 0x5f709785
+0xe94340a, 0x3d1f175f, 0x909de22, 0x7179f889
+0xb622ca58, 0x56f6dd64, 0xdde7bb8e, 0x7b226847
+0x8b9ef8f2, 0x9248d402, 0x334efa8e, 0x6ce56c7c
+0x258a8a74, 0x1a50b2d5, 0x18d54442, 0x93413627
+0x7cad27f8, 0x8c4d5cfd, 0x7f16827c, 0xa53429ea
+0xc70adff7, 0x9107390b, 0xd514595c, 0x6b3c653c
+0xd1d6e0c3, 0xc75e6b, 0x6235436e, 0xb170bb87
+0xf45dfbc2, 0x449b602d, 0x9edc60e5, 0x69e5f6c5
+0xd1a153c, 0x85a20a06, 0xce6c09c6, 0xcea3be9b
+0x170ad880, 0x4ff7a04c, 0x114bfe90, 0x45020f3c
+0x4e816cac, 0x9aaebdbf, 0x6841a418, 0x3b4f2a
+0x21111e66, 0xfa694e3f, 0x38d36514, 0xa2b85c5c
+0x5eb19889, 0x50309cca, 0x3b56ec51, 0xc1150cb6
+0x4d7b6c46, 0xa8388593, 0x61bbe7c, 0x9469413
+0x7069abdf, 0x7447eec7, 0x31e881f8, 0x47eb26ce
+0xa5ca1c5d, 0x86ab4db3, 0x3e1a024b, 0x884338d2
+0x9a2cbfb8, 0x8e69e2d3, 0xf74fd167, 0xf1c6e0bb
+0x87f709f2, 0x6c55a5b7, 0x9b66affb, 0xf0368424
+0xb8da8554, 0x1d1d1192, 0xa7670222, 0x4f9e2810
+0xfc979ec0, 0x2b3a53e4, 0x830b8a3b, 0xc8feae4
+0x4f35d720, 0x53a03130, 0x703fb44e, 0xe6868670
+0x31cf77bc, 0xed1591f1, 0xfad8785d, 0x29b07623
+0xefa3e4, 0x8ec2e79f, 0xc7f03877, 0xc5b72848
+0x16d2753b, 0x3c9609a9, 0x3bac122f, 0xb2350a47
+0x1e3c482b, 0xe7eeb7f0, 0xac621c4e, 0x4e6acf2a
+0x85787e54, 0xa1063df1, 0x21a5a3aa, 0x769ffcdf
+0x68f13e71, 0x79a16ffb, 0x1f50deb, 0xc6300472
+0xab2efc6f, 0x3112b462, 0x452ec58a, 0x8683445e
+0xf5b09516, 0xc64411ab, 0x1ef2bbcd, 0x575c5eaa
+0xd7264caa, 0xdc3c4d6c, 0xbf699ae0, 0x315cc36
+0x20c0462f, 0xcfe50122, 0x3dfe83c5, 0xc16af63f
+0x188cce06, 0x81bc3c50, 0xdb2f4c54, 0x63e0e74
+0xd9484cf6, 0xf045126c, 0x5ff590ed, 0xd868b5ec
+0x97a4815, 0xa45b4c50, 0x3843f6a, 0x89c37471
+0xef5402ca, 0xfcb3d2aa, 0xe84ad9c9, 0xf0b85fa1
+0x23f7af79, 0xcc77e06a, 0x4da81f, 0xbc9f2663
+0x43fea4a7, 0x689d2945, 0x83f41f79, 0x2671dc75
+0xd117cd3d, 0x67568810, 0x5060de47, 0x3717bf77
+0xf24f1264, 0x8e93d48c, 0x4d8c7d09, 0xa54386d6
+0x18a0c4d1, 0xfbd0d0bf, 0x9f2a6abf, 0x842fdd44
+0xa0a351c8, 0x524874fa, 0x5b7833f1, 0x6a3ea190
+0x8a8d654a, 0x2f1acefd, 0x8426203b, 0x844be522
+0xb12df02d, 0x27fbead5, 0x4a849bc1, 0xca70e659
+0xb5bec7e9, 0xbc1cdc48, 0x390e590e, 0x92c5d952
+0x83a206c1, 0xf2bd4966, 0x1c5ebcba, 0x491072f7
+0xb641da5e, 0x92420bab, 0x50e58c36, 0x92c5a00d
+0xfb00dd7f, 0xc7c4824c, 0xf3486fff, 0x6387ceca
+0x67d2a38f, 0x584e1806, 0x3c2ef2d8, 0xb1617930
+0x50c58c19, 0xae4b5226, 0x6bfd4287, 0xe3aafb10
+0xd8be2c82, 0x1c566179, 0xa5b0eba4, 0xa76fb0e0
+0x3fbd341b, 0x7fb87140, 0x16c542b3, 0x7ecf1602
+0xa5f66e99, 0xf08b3457, 0xee22d2b8, 0xe291c87d
+0x4c9fc1a7, 0xb359af7b, 0xd60578f8, 0x63597f2f
+0x704453f8, 0xeadf0e6f, 0x342b292f, 0x16e37e1c
+0x7415eb4f, 0xdc687630, 0xd73b7814, 0x338172ea
+0x15e9e155, 0x44a82953, 0x6d206bc6, 0xc0b3df79
+0xe29aa3b5, 0x7585d329, 0xb3eb0667, 0x979bfcd7
+0xcad4834b, 0xf5853466, 0xb193ec88, 0x7f6d1efe
+0xae1da438, 0x683f22f5, 0x7f9d9ea0, 0x59be8cd4
+0xee0ff046, 0xa1817fc6, 0x3c7a0509, 0xa4750f25
+0x2e158f9e, 0xfdea8911, 0xfc49b7b1, 0xe3a0244a
+0x10fdabe6, 0x56a75b0e, 0xa817a773, 0x82a74857
+0xa336a0bd, 0xb3cf7765, 0xe4c4ea59, 0xb18124f5
+0x1efb517d, 0x8f0a2f07, 0xbd5c2941, 0x1dde7a92
+0xccc1e104, 0xefb60237, 0x15a283b, 0xe6b68842
+0x5d1c1eb1, 0xaaa1f821, 0x7663ce10, 0x1d2523c9
+0x7dec96e1, 0x2183d818, 0xaa2398e, 0x2919d1d
+0x3c5d641c, 0xfa9ebf23, 0xe9fa442d, 0x29c16432
+0xe200edef, 0x32fd4aee, 0xe90c98b2, 0x61f9fd99
+0xd0c5ee15, 0xee86a73b, 0xa46ec94f, 0xcc37521e
+0xbd037a48, 0x42415b2a, 0x48b0abea, 0xb6b26a65
+0x89a555df, 0xe47212b5, 0x81904a8b, 0xaea08d29
+0x2923bdc4, 0xde18ce6, 0x1d201ad7, 0x5acc12ca
+0xa527ac6d, 0xe1a1633d, 0xcff60f0c, 0xdb5cb8bb
+0x152227a9, 0x9b4a1063, 0xbea64cb2, 0x29cc049
+0x64caf5f0, 0xabc03fa7, 0x5d8ee8e9, 0xdb35bba0
+0x85321f08, 0x94c14a4b, 0xc7cef4f7, 0x448bdd81
+0x7b97aec3, 0x95f405cc, 0xeb78ba40, 0x926e174a
+0xbaee835, 0xa21d612, 0x17a6bf8, 0xa0ccd1d5
+0x7a6ad0be, 0x7e3c527b, 0x7193dce3, 0x21052646
+0x253e1acd, 0x12b90a52, 0x681df045, 0xa5814c4a
+0x678165ee, 0xe3a22525, 0x28bddfd, 0x9868831
+0x1b5fdfde, 0xa72318c5, 0x6da08564, 0xff3ae0f6
+0xf3a9b583, 0x7b68a1f7, 0x221713e1, 0xc951f632
+0x3eabdae4, 0x61bc0072, 0x25644780, 0x73b1fa7
+0xccb2a42a, 0xaa13f91a, 0x82297617, 0x3a1952c5
+0x39c8874c, 0xc93940dd, 0x570c2a51, 0xd0a7c58a
+0x12671b0c, 0x119c652e, 0x9ebe2d0f, 0x123f771
+0x1133cd69, 0x492800e0, 0xf2d5bcff, 0x17d9485
+0x5c3bd606, 0xda319ab1, 0xc22d1d8d, 0xaa36abb3
+0x82f0f0de, 0xb138788c, 0x423d9ff, 0xea2f1cba
+0xdd9b1a34, 0x39859074, 0xd1a6c1a9, 0x57d17190
+0x1bcd5aaa, 0x28fd685e, 0x6853c29b, 0xb678dc47
+0x80f2f6f4, 0x6fe0545a, 0x22cd60c6, 0x6209d7b0
+0xd27a33a6, 0xb172cfe8, 0x261e4eeb, 0x7e41010a
+0xa1a1448a, 0x427d7a4b, 0x24ccb788, 0xd9974123
+0xf8376f5, 0x93b80ea0, 0xb68db9f, 0x43d63e5f
+0x7a310c18, 0xa080d19d, 0x978235c7, 0xb39fb5c4
+0xa3a1f759, 0x3bb2ba25, 0x2af86a26, 0x7499be13
+0x48740187, 0x331c8aa5, 0x12c0c47b, 0x5b40dabb
+0xbf743446, 0xadc9e56b, 0x18c9d036, 0x27b3602d
+0x680b2d17, 0x5e8a36bf, 0x1d2dc8a7, 0xb5aeeaa6
+0xb3e36064, 0xa7ee3b87, 0xd6682095, 0x67f7903d
+0x44fb184a, 0xaab407cc, 0x55932d5b, 0xd8862db5
+0xafbb6451, 0x1a294b62, 0x635f0746, 0xf86f044a
+0x549940af, 0x194d29f2, 0x483180e4, 0xe6ba52d2
+0x41391fbe, 0x721caef3, 0x83a58280, 0xaf476fd0
+0xa9583df, 0xcb130879, 0x6a136cde, 0x547f8ee1
+0x3662e217, 0x3acd43bc, 0xe7b90fb4, 0xbdd2c9dc
+0xaca2df54, 0x3b0e7d05, 0x1a1b30f1, 0x391824f5
+0x7186b953, 0x52bb48e5, 0x739bc0d5, 0xc032ee10
+0xb3cd3648, 0xe38b7b7f, 0x6a21f02a, 0xb4081250
+0x6c00ab4b, 0xace9cc7, 0xc4dd4ccc, 0xc56e7e9b
+0x8bc33d9, 0x16f43f99, 0x7d738f47, 0xbd094293
+0xf18882f9, 0x98cb621f, 0x8f258f53, 0xe9a600c7
+0x22314622, 0x22ecec73, 0x3197bd4b, 0x82197168
+0x5af8c454, 0x150762ef, 0x3348d549, 0x451f070d
+0x9d93e6ac, 0x9b2ee7c6, 0xee59d423, 0xde563c43
+0x76d15035, 0x1b1fb4e4, 0x61c8da72, 0xae4a752f
+0xe2a90f64, 0xfcc3f15e, 0x4c4d6875, 0xe1e76a83
+0x71fb66b3, 0x33458471, 0x72fdefe6, 0x6535cc98
+0x787bc82e, 0x1938ca1f, 0xd2547587, 0x35edb1dd
+0x699deb2f, 0x6a6aad37, 0xae933fd0, 0x5f5d67cf
+0xec564cf, 0x865aaa3c, 0xc1c94cd8, 0xe6219f85
+0x1528fa81, 0xd37388da, 0xbdb10700, 0xdd2e422b
+0xcc95a962, 0x961c1b10, 0x63a078e6, 0x440f9142
+0x35d2abb, 0x88643926, 0xf2b22caf, 0xf82b855b
+0x7ef9677c, 0x3c913f3e, 0x19cbb308, 0xdb1aea9b
+0xe0cedaa3, 0x8c72eff1, 0x66a0b19f, 0x660d78eb
+0xb0523ccf, 0x2d059cdb, 0x1bac46e7, 0x8504aa2b
+0x80759294, 0x33add1eb, 0x1307be28, 0x32b02b5f
+0x30eeb446, 0xd2756ebf, 0x6110fd73, 0x1a2290e1
+0x9af17bd6, 0x518adf18, 0xaa37fdee, 0x34d90799
+0xe5fd80fd, 0xa3529f49, 0xda58760a, 0xf52db54
+0x1c010d29, 0x62f8a328, 0x413c3e74, 0x70a2a15
+0xbab6e100, 0x4edca554, 0x7e5d9ba9, 0xa9f4dd76
+0x7fc0c22b, 0x94ec923b, 0xf3ed87d3, 0xe792e4eb
+0xeca64183, 0x6460844b, 0x4fbaf87d, 0x50ac78e9
+0xdb7f751d, 0x26840e93, 0xddb0208a, 0xde9e6622
+0xe9618ddd, 0x5ceb80e7, 0x4ec9f278, 0x9f81e6b3
+0xb9429029, 0x7c9f1161, 0xd3514693, 0xb98d167d
+0xd41d8560, 0x32b1f66f, 0x628dc9e2, 0x63f755e6
+0x7f1f316e, 0x333537da, 0xef3487fb, 0x5d987bc8
+0xb1fe81e8, 0x811f4fee, 0xc5b5463, 0x3a78ffb9
+0x946610c, 0x5c09df, 0x490542d1, 0x528ff6f0
+0xdf32e5cf, 0x29e1b871, 0x2feef2d3, 0x120890e4
+0x697b1bb0, 0x24f06881, 0xa1aeee74, 0x4e9f1297
+0x948fdc37, 0xd5f44dce, 0xf904aa05, 0x635334bd
+0x50bc15f3, 0x40f3031a, 0x4265b999, 0xe5bc3fa6
+0xd1993127, 0xda60d098, 0xc4f94480, 0x9c9abf9d
+0xc49b309d, 0x45c1139b, 0x47e2237, 0x5b539d04
+0x3d1f8c2c, 0xcbc1358b, 0x566e861e, 0xf0cf1729
+0xc76b5046, 0xe316cd1b, 0x9ce7a91e, 0x208de9a8
+0x8028ad53, 0x9e7b7d58, 0xb810ef50, 0xf0e5a309
+0xb147a1cc, 0xf06f1dcd, 0xcd4e4933, 0x277fb8b6
+0x77f89978, 0x41809239, 0x8015f75c, 0xb75f6c5a
+0x148ade05, 0x73e9ff48, 0xc93eccc6, 0xb87ee725
+0xdd24897c, 0xbafd2300, 0x55d34632, 0xfb6b4185
+0x8da25e3d, 0x422f9109, 0xe4dd3418, 0xc5cb79e5
+0xb8fe5623, 0x134f8d27, 0x9ea5ef9b, 0x96547101
+0x61662606, 0x2309e728, 0x5975045a, 0xd3912101
+0xc3f77679, 0xd2db396b, 0x171889e7, 0xebb728bf
+0x54f08130, 0x2fc6b961, 0xadd98a6e, 0x989d0ab4
+0x570eaabb, 0x5b0816cb, 0x3c25451f, 0x41dc86b0
+0x519eb7a4, 0xe0adb356, 0xd6d80411, 0x3e8a0b45
+0x8c2d2ed5, 0xc0411ee2, 0xef431a0f, 0x8b66fd6a
+0x2e61a59d, 0xf411d477, 0x32011de8, 0xa1460ef2
+0x8f211bd8, 0xc06811b9, 0x6b951749, 0x3ba6ba80
+0x12c032ce, 0xaa0b9062, 0xb87346be, 0x642b52cd
+0xdc426ea3, 0x730ec245, 0x64bad806, 0xee165598
+0x1912b00b, 0x3c4a6c01, 0x5ce6793b, 0x18bccbe3
+0x4718c7a7, 0x10142a70, 0xd8e2643e, 0x8f594d21
+0x8af05690, 0xae2094b5, 0x1fafdda9, 0x3e4fbdf7
+0x55e8504c, 0xc11d68e, 0xb4b64f33, 0x301cc0fe
+0x8a8d7d84, 0x9c0c018b, 0xf7e9a35e, 0x3f13cbf7
+0xc6c732ce, 0xcc5ced62, 0x744133c7, 0x4b22de30
+0x58b86be5, 0xf2e0a3be, 0x98b5aa36, 0x58e780d3
+0x99d0568e, 0xe87e27ba, 0x63a6c2db, 0xe656bec3
+0x1db080ea, 0x15c60066, 0x77ad449f, 0x43920d62
+0x1e0f4721, 0x6f7e30c9, 0xeca03d9c, 0xe1f011d0
+0xd8c80f14, 0x99a2c1a0, 0xae0d1a9f, 0xf7c6ad3f
+0x4ad31d23, 0x63be60eb, 0xd4d5ece9, 0xa9f4135c
+0xc2b0f232, 0xfbb268e0, 0x6af528ca, 0xebd48782
+0x23919301, 0x9dbd4d4c, 0x6010b963, 0xbed8ca80
+0x7960e796, 0x3f9b0dad, 0x612449a3, 0xbf978904
+0xf02ef517, 0xfee7d4da, 0x914e6acb, 0x5ce2d065
+0x340cc27d, 0xfc12c09c, 0x2d18da5e, 0x5810e9df
+0x7624e356, 0x4ff0c4d3, 0x70deb5b0, 0x7df6661b
+0x41df3562, 0xc7518622, 0xd8439c02, 0xaa19b740
+0x1be1fbe8, 0x6e0846ad, 0x76b09c43, 0x559f00e3
+0x30c82cec, 0xa53e99b7, 0xdc779f9a, 0x2463b1f3
+0x6b263524, 0xde39ccb3, 0x8d510868, 0xf7726914
+0x1dda70a4, 0x2b0b2577, 0x3d439fa6, 0x1a6aaeb4
+0xf659467d, 0xeb250447, 0x5d52eacb, 0x9766d5c8
+0xda991861, 0x2b111c3, 0x55411a98, 0xde330972
+0xa591bcfa, 0xa9aa6676, 0xd629d3a, 0x18927551
+0x4a487832, 0xde2cad16, 0x569f846, 0x903461c0
+0x6669ccc8, 0x7486237f, 0x78302af, 0x28679884
+0x4ca470bf, 0x177a1d66, 0x2249ebe2, 0x6b0360aa
+0x23c5eec8, 0xf1ad0ff2, 0x20a0c2b7, 0xc12073c2
+0xd879b313, 0x29f7499e, 0x528cd91d, 0xa527c073
+0x4f3cb413, 0x89b6a38, 0x9bf02bf1, 0x8be7cce5
+0xda994578, 0x314bb5ac, 0x9bc8095, 0xb6f398e6
+0x26d79f0b, 0x23f03183, 0x5a827a7, 0xa9cf1773
+0x85e15d58, 0x1ec2403, 0x83d5c4a8, 0x95d7f5f6
+0x32dee0ee, 0xe72a14e7, 0x39627d85, 0xba78cb25
+0x6ddfe3a0, 0x145446e3, 0xc55b6175, 0x6dc9403b
+0x761ba617, 0xf046f2e8, 0xab074d3d, 0x204f9771
+0x9fb58da, 0x44625861, 0x4cc002df, 0x7b1e36
+0x54c54e83, 0xf4fcdd03, 0x6cc8fb22, 0x685a7cea
+0x6f80fc7a, 0x3f631ce1, 0x49e0e784, 0xb6da7bfc
+0x922d2521, 0x8e209566, 0xf0810fa3, 0x2543a49f
+0x1ce7a70d, 0x15474206, 0xc934f318, 0x17bdfbb7
+0xa9782caf, 0x64e9eb8c, 0xb2d90c5e, 0x87f2c09f
+0x5b1cbb85, 0xfbf30990, 0xfce5d4b2, 0xeea12716
+0x8819b49e, 0x55a0edc5, 0xb56a2f98, 0x53175f5d
+0x7e4af593, 0xe5c33dd3, 0xb2f65ef8, 0x88169ff6
+0xb03eb83f, 0x5f0e4bb6, 0x172d99d1, 0x2455c2e0
+0x8344300e, 0xf7dd552b, 0xdec771a0, 0x79e2e49c
+0x897f52a4, 0x5ca565f3, 0x24c14211, 0xdc48d5a
+0x59257e2d, 0x96849788, 0x864eb663, 0x856ffbe3
+0x32e56ec0, 0xde698ff9, 0x53bf7701, 0x6912e29e
+0x4f34c903, 0xf94e9ed6, 0x42bf98c9, 0xe19a966f
+0x80503dec, 0xbfade023, 0x70f49d3f, 0xb9dfd059
+0x901292cf, 0x4c175391, 0xc194fa76, 0xba99fcca
+0xc9ed30a, 0x5166cc98, 0x76b4b1d, 0xf55b8e61
+0x58dfd4a5, 0xf7b1d1a7, 0x1cff1a86, 0xcc3a8653
+0xe0d906b1, 0x60ca8fce, 0x17e49b35, 0x528fad4d
+0xce2c6af8, 0x1882ca60, 0xbc2b7f81, 0x7bcae14c
+0x27f76e2a, 0xfefae7c4, 0xcacadee0, 0xcdd97f70
+0x37871a3a, 0x6bb6f8f7, 0x838460a6, 0x15b5c9e2
+0x71b9458d, 0xb0e4add8, 0xb9b255a9, 0xbd4af746
+0x9ce5e778, 0xce88ebbe, 0xd222c3a8, 0xa89a867e
+0xba154bf, 0xa854c3c1, 0xcceb3d31, 0x59c02665
+0x56b5138c, 0xe46f6a33, 0xbeec78d7, 0x213ee1db
+0xc4ff6fd2, 0x4bbdaa18, 0x1b4bad97, 0x47ffed55
+0xf815af6d, 0x304b3a4e, 0x860d1a1, 0x8fc47019
+0x284f6734, 0xd1a79e1a, 0xc7342562, 0x98497008
+0x25215dc3, 0x5eb1553f, 0x9840e9e4, 0x135e7abd
+0xc6aa8439, 0x2de238f4, 0x7f9a8c6b, 0x413d308d
+0x6a7c59f2, 0xe994a82e, 0x73d74eb7, 0xfdd8ccbb
+0x31c8573f, 0xe70dc627, 0xffd107f4, 0x1ea5c7aa
+0x900772eb, 0x80b615fc, 0x9d615014, 0x19900390
+0x3c4b6527, 0x76f5e1f5, 0x9db29a22, 0x91e714a
+0x82830313, 0x6f43b7bb, 0xb71caa4c, 0x9c72a28d
+0x227e4437, 0xad89833a, 0x5be78620, 0x287e52f7
+0x446b839d, 0xc1e99567, 0x158b7af7, 0x815c17e9
+0xf9cb64c0, 0x2db37c42, 0x7705db51, 0x9759451e
+0x8f4f519e, 0xefa3fd53, 0xe1c5955c, 0x46233d3e
+0x910691ec, 0x94bde9ea, 0xa28ffedd, 0x927fc5a1
+0x8f110190, 0x32cc8b9a, 0x52af9a3e, 0x92ba27c
+0xcd377701, 0x8a697ecf, 0x4529c597, 0x244a960f
+0x5caa8ad8, 0xdf626111, 0x4c1c8aee, 0x99f235df
+0xdaec48f1, 0x74ee10bd, 0xef09da5e, 0xee38980d
+0xfad74acf, 0x8bd335f7, 0x689faac, 0x8ea0ce1
+0x479c52ee, 0x4cee55a7, 0xb25edd41, 0xdd199872
+0x9df002e0, 0x966ad04e, 0xdd47116, 0xbc7e8191
+0x51b8f70a, 0x31195f0e, 0x1169dfc6, 0xbafddf64
+0x397ea736, 0x459d772d, 0x2a118531, 0xc7639bbc
+0x420bc78c, 0x29a2394d, 0xaa07f711, 0xa96a83b2
+0x46cef638, 0x92a9c9ef, 0xb9f16f5d, 0x4a958401
+0xa160d3b0, 0x4042d070, 0xee8256d4, 0xe97c2dfe
+0x9f014ed7, 0x1f4fe7, 0x6c5b7ced, 0x80f944d4
+0x55ed13da, 0x2586f6ef, 0x90be1a50, 0x51f999e8
+0xb4fcf1c8, 0xdb97deb4, 0x212ecc7d, 0x8c1f1e9d
+0x4293c4f7, 0xfb875cbc, 0xfd0eedbb, 0x41ea55d1
+0x5637f81, 0x84eb03f3, 0x626bc121, 0xb3004ac7
+0xef13cc73, 0xb3ba04c3, 0xf107f46b, 0x59c2aa76
+0x93e8c02e, 0x6399c958, 0xc3c11f96, 0x575b05d0
+0x463e42ca, 0x22712504, 0x5690dc1d, 0xb565a56c
+0xe90543a1, 0xea1de8a2, 0xeedaee02, 0xcc67108c
+0xbc855a29, 0x88c758ad, 0x7a530614, 0x7a25d9e4
+0xf5df464, 0x5e983d69, 0x7d50cf69, 0x6794b649
+0xa462f934, 0x7ac5d66e, 0xf35d2406, 0xfe6c4d2b
+0xa7e65114, 0xdb6e1e88, 0x27c7e01a, 0xbdfe008e
+0x34796ba, 0x5ebab58c, 0xd7f55ae4, 0xa139f493
+0x398a45a1, 0xff93f929, 0x52432511, 0x9f3b7dfb
+0x433ef08e, 0xb2a70a19, 0x6f55e3f7, 0x321bc65b
+0x3e4a702e, 0x4e7be74a, 0x72378d12, 0x5694f41d
+0x60264090, 0x2a6cb53, 0xa12ca14d, 0xd409d296
+0xc9f72236, 0x12b8ddd3, 0xa4d8b5a8, 0x38234420
+0x27e986ac, 0xad15d0d1, 0xadb9dc2b, 0x583b4a15
+0x189c6bf0, 0x867d96d0, 0x2af01063, 0x4c56882f
+0xe0b548eb, 0xdb617815, 0xbf18c1f5, 0x4d3a7881
+0xb860c6d2, 0x69cbfd65, 0xd591643e, 0xe57ea9c8
+0x4cbb776, 0xe7e44874, 0xacb51cef, 0xd3525f4e
+0x2d81a8d3, 0x6854e63a, 0xe4e53a06, 0x80d083d8
+0x82d6673e, 0x35fe872a, 0x6b837052, 0x1093abf2
+0xdc485a87, 0xebd60708, 0x674d4d50, 0x78d6b77c
+0x483b01d5, 0xaa23d8e6, 0x422625d8, 0x43b3ebef
+0x4ce017ee, 0x632b2d1c, 0x153da038, 0x92ead944
+0x3ed6ca65, 0xed3876f4, 0x9ba4d438, 0x83494412
+0x427c66a1, 0xdd9709b4, 0x46d5e258, 0x47a49554
+0x192d918, 0xfcfc08c6, 0x61f04d75, 0x7a18a2c0
+0xa7a1cc82, 0x6f02a855, 0x12bf3b37, 0xc50f2a03
+0x21de0103, 0x48645d88, 0x586d2951, 0x762a1e2c
+0x27f97998, 0x10731f72, 0x2c2b670e, 0x7d9468b2
+0x890988e1, 0x412e0fa0, 0x9172c095, 0x69720b4c
+0x96c8221d, 0xbcbb91fc, 0x780ac1d6, 0x20374dec
+0x171c1acb, 0x33c1ad46, 0x2ecd1f14, 0x5e6d3940
+0xa37e753a, 0x683e5ef, 0x8b2a4167, 0x565be62
+0x24835c0f, 0xcb5981c9, 0x1f1fd1e5, 0x3f3aba11
+0xf8533e9b, 0x65421a0f, 0x2cbd9f5f, 0xca04ccc5
+0xf56da8df, 0x26202d3f, 0xd8f87abd, 0xd737cfd8
+0xc3945291, 0xaa157895, 0x7fa76c05, 0xf3046925
+0x70347cff, 0xbadc54c5, 0x6637a0ef, 0x40a76999
+0x47aa91d3, 0xa6a7730a, 0x2ad78f2a, 0x83f96e96
+0x6a7862ca, 0x22865bff, 0x8c8a5219, 0x1327954b
+0x21b08e1f, 0x6736f68a, 0x1e54288d, 0xb488823c
+0xb72b32a9, 0xae2987c9, 0x53ae84d0, 0x61c8e5b6
+0x692cf2a6, 0x4f34d761, 0x8f3720ba, 0x7721665
+0x5eb0a08a, 0x438b0a5, 0x5f632dcc, 0x3a3a49d4
+0xcb56e910, 0x25c452ea, 0x66d09e9d, 0xbd5d7891
+0x687b24d5, 0xf37b63d7, 0x599ba7ce, 0xe6e69137
+0x9d490112, 0xaccbcab0, 0x89ef722b, 0x6e9e8bc0
+0x18320cf5, 0xfa2b18d, 0x5d6cb275, 0x1df02fd4
+0x5864aa49, 0x11e4712a, 0x7c83657a, 0x3694686c
+0xd3630a33, 0xb34703a0, 0x768a16af, 0x26ae6c0c
+0x1e3dbaa7, 0x3fd52344, 0x87c37191, 0xebb7850f
+0x101cbeea, 0x1e89159b, 0x17c1eef0, 0x8eea243a
+0xbeef68cb, 0x6b2ca0ee, 0x525d82b2, 0xcf951c7d
+0x805eb6f6, 0x4bf5c6ad, 0x7b72005f, 0x7607ead9
+0xf0e9d61e, 0xd06010d, 0xe43eb27c, 0x31623fc0
+0x3620a219, 0xe0920e49, 0x90f4f507, 0x8fa907ab
+0xf125f114, 0xc84bb3a0, 0xbabbb3c2, 0xa3f8642
+0x5add89ca, 0x402417fb, 0x3fd70dbd, 0x37d9e11d
+0x94985df7, 0x7039e236, 0x9630ba5f, 0x6e36e454
+0xe608c1dd, 0x3eed27c5, 0x18bc8f01, 0x8e7bb0c9
+0x35e0453a, 0x97e91592, 0x4c3cc119, 0xfd6b72bb
+0x414f6590, 0x39deeac5, 0xe1b035f, 0x576703a6
+0x106c2ac9, 0xf5251683, 0x8b964bc5, 0x38508a86
+0x4ff0bc9c, 0x1e886ce2, 0x50e161b5, 0x71f6317a
+0xd0a19809, 0x5cd19ae0, 0xc5921e4c, 0x660656bf
+0x69079b1e, 0xcbf1b7ad, 0x2d6a920d, 0x87283681
+0x4b91531f, 0x9603f951, 0x6021bd96, 0xce3211a8
+0xc10b949d, 0xaacd403f, 0x76c05497, 0xb701204a
+0xd168290d, 0xd82f6283, 0x2133963f, 0x8f79f19e
+0x4163216e, 0xc922e271, 0xaa5cc126, 0xff6b210a
+0xc35de145, 0x8f9e7059, 0x6539b367, 0xcec81f9e
+0xd4e91fa4, 0x461ef762, 0x47d8609e, 0x90d98cde
+0x71eb361b, 0x59757d52, 0xc57991a1, 0xf571fd8
+0x8acd9d9c, 0x32078bde, 0x64a29f51, 0x9b257ffb
+0xf56b571b, 0xc90d290d, 0xe193ad9a, 0x2d531701
+0xeec5c5c9, 0xb2493aae, 0x9ef8e161, 0x1facb7aa
+0xf403112e, 0xd8448d2a, 0xf8c42e84, 0xfc8ee83e
+0x6e99610c, 0x23544561, 0x1937918f, 0xd52a037e
+0x92b767f6, 0x60def8e5, 0x95481ae4, 0xb04fb33a
+0x3018a90e, 0xeb92470d, 0x72f3fb26, 0x42d79a0c
+0x39854c08, 0x8fd824dc, 0x12973df2, 0x8b22b1c3
+0x737e9cc9, 0x90a3ecca, 0x5bbd99b, 0x452a9bdc
+0x6e62085f, 0x59fd61db, 0x43fe0e46, 0x7ea380c4
+0x15d740a7, 0xde46b50, 0x415c9aa4, 0x2747c8bc
+0xcae2e06e, 0xf0e6bafd, 0x12097482, 0x84263a0f
+0x1568c1d2, 0x78ac5701, 0x93bd4a7f, 0xfaa11509
+0xb0b2c6d2, 0x98fdba07, 0xf6be5c43, 0xcf0eeb30
+0xba494dcc, 0x149a6f34, 0xdb58e73b, 0x811bece
+0x6255955b, 0xa4c436c9, 0xb9f4168, 0xce629dda
+0xe486b9a8, 0x8856f337, 0xf214efd, 0x94356904
+0x49b4d544, 0xfb024056, 0x2f30e577, 0xe9e5dc29
+0xbc729875, 0x39489804, 0xe261185c, 0x3e8f2c37
+0xe4dfc51, 0x5f379c20, 0xf09bfbfb, 0xa1cadd23
+0xf1131182, 0xac3ce104, 0x2bfbb44e, 0x500c9d5a
+0xd93256d, 0x825a1925, 0xe4de482a, 0xb9bee297
+0xc312115b, 0xe166a671, 0xe934e314, 0x87b108a3
+0x12a6da42, 0xb91cdb02, 0x59817f0, 0xc72ba3a9
+0x2de24c68, 0xde9bb9ff, 0x1300a5a0, 0x1138d929
+0xc60c781c, 0x405387d1, 0x9ea1152, 0x2ed5de44
+0x27e27aea, 0x8d1ff931, 0xb110bcda, 0xf7f18289
+0xa55e4e97, 0x7e4be525, 0xdc4d4e2c, 0xef592a62
+0x8bfdadbf, 0xfe8c10fe, 0x9c4478a6, 0xd908dbe1
+0x1944893, 0x1abb0203, 0x47c11aa1, 0xf4c62174
+0xb09f6dfa, 0x19aa67db, 0x24b35887, 0xd22abe7a
+0x8534ccf0, 0xc79e9cab, 0xd1a2cbb0, 0x45dfeb3f
+0x26ec6f92, 0x8eec4625, 0xdca1ea5b, 0x6433ef01
+0x63196390, 0x9a6daade, 0xf143c8cc, 0x30e9c0e6
+0xaf7c5fca, 0xc364bf5, 0x84b02452, 0x100ac694
+0x236cbeff, 0xbd7af3a6, 0xe74c2a46, 0x2799c3ea
+0x6df590e0, 0x65f49266, 0x3fda6883, 0xa88fe025
+0xc644618a, 0x6c510d6d, 0x8788202, 0xa468648b
+0x3dda9ade, 0x13b35ad7, 0xe276fd92, 0x29e9ee4e
+0x3bab6884, 0xe258a865, 0x89dcf600, 0x1f5c5e95
+0x7a6ae308, 0x66f53072, 0x867328f, 0xa37e726b
+0x6b96dbf2, 0x1006c4d5, 0x48e60475, 0xa997cc37
+0xe9c1f2b6, 0xa8461eed, 0xf0aa6684, 0x3d58a770
+0x9589ae75, 0x8759007d, 0x35ce5932, 0xaf7950fe
+0xe06a78cf, 0xe8a78a96, 0x98d4cc57, 0xa2688274
+0x12f19583, 0xa80fee70, 0xa2790c2f, 0xfd5d30fd
+0x38c8e801, 0xa63d253, 0x614af5ca, 0x8a27d28
+0xd56ce25c, 0xc140764d, 0xdf8a8d80, 0xf3a3db6b
+0x463586f, 0x4fa24e4c, 0xd2fb46ca, 0xfbdac1b0
+0xe1c189fc, 0x6692270c, 0xff38394f, 0xf65dca5a
+0x5905de62, 0x20a8dc1f, 0x8c90029c, 0xd5290121
+0x9ff21617, 0xbf7b962c, 0x4cc34f4e, 0x97133289
+0x7402a071, 0xd6c8a856, 0xfe9e9723, 0xd48bae91
+0x240e7cb3, 0x61e43c7b, 0x311e3522, 0x1eccc828
+0xb2d607cd, 0xeb759872, 0x43b9496a, 0xcdd6411d
+0x823b6ac7, 0x8f7c3e5f, 0xe1bb6d69, 0x3b93ad2a
+0xccf8dec3, 0x619b2499, 0x6ff21279, 0x74b1e4bf
+0x3f0c90b, 0xf3948573, 0x1147f7d0, 0x5a5631c7
+0xb545d83b, 0xf73e725f, 0xefc2aa2a, 0x936807bb
+0xa98d07e3, 0xf736f817, 0x898e41e3, 0x8a01d5b3
+0x3039a250, 0x23241119, 0xc9842441, 0xb6f24adc
+0x7a9de4dd, 0x2d2b8b5, 0xbdf16f17, 0x812b3781
+0xcbde2032, 0x53593961, 0x28cb157f, 0xb33e01a1
+0x1d9f9513, 0x87b5ace8, 0x38313f6e, 0xc987639e
+0x350a2803, 0x1f25c821, 0xd67fcec2, 0x32f30880
+0xfdf5dc4b, 0xc6f4fe0b, 0xf5254d9, 0x946085f9
+0x295933d1, 0x6a7ffb08, 0x60a678c2, 0x4654663e
+0x37a869a, 0xa6c762bf, 0x71c94947, 0xe6cec4c0
+0x96f51173, 0xb2171c02, 0x972085b, 0x1440b26c
+0xcf95918e, 0x5615125b, 0xb23a1482, 0xdfeb4989
+0x2a2790ff, 0x1c5c6b90, 0x303a9b2e, 0xdf8c2373
+0x6d227eb0, 0x9cf2f720, 0x6362079c, 0xfab89bd2
+0x8558c70a, 0x4bb30ce4, 0xdfd7e0d3, 0xb31455f1
+0x7cc86db5, 0x51b90688, 0x24278932, 0x19406b7e
+0x3dddd47a, 0xdebd53dc, 0xe75d263a, 0x9f5276f1
+0xc73f207b, 0xd899de32, 0x7043089f, 0x94600a67
+0x4f313558, 0x4cd26a1a, 0x8cc340b8, 0xc1d4ccf8
+0xc49924dd, 0xd4bdb1eb, 0xc11033e8, 0x18da7e66
+0x7f5a3822, 0x695e49b5, 0xa8ab858, 0x81337268
+0x9e0379c0, 0x6a5eac55, 0xba40fd92, 0x5194c12e
+0xa8c58e53, 0x490c84e0, 0x2cb92611, 0x7fedf3c7
+0xe1d1e240, 0x56e314c5, 0x6e660174, 0x9f58d852
+0xd5159fd6, 0x180c2cf7, 0x9dd7ad07, 0xfe1b0bfe
+0x670193a0, 0x27bb5743, 0xb602ce3f, 0xc55fdb3c
+0xbbdaf3c4, 0xe98cbe89, 0xdf4b1a75, 0xdf5d7c67
+0x263c33c9, 0x9ba47e84, 0x2a01e6e0, 0xa1c69a03
+0xbde866d0, 0x83c552a9, 0xcd6a60a0, 0x74fa3eb3
+0x9e1297db, 0x9d3e33ba, 0x5af3a29a, 0x2c2352ea
+0xe5a3658b, 0x26226e78, 0xa3cdc7e3, 0xa0a46b36
+0x491a8278, 0xf8984f60, 0x186abbaf, 0xbe4aa731
+0xb9d8fba2, 0x4f20e1d1, 0x94f5c786, 0xe2d4ecc8
+0x3e66b547, 0x39ae06dc, 0xca107048, 0xefcc18fe
+0x87029729, 0x1c9ce023, 0x894ed4e, 0xb4e02132
+0x50445060, 0xb604c7fb, 0x955626c6, 0x8d7e8e01
+0x4cc0e37, 0x40124052, 0x5cfe192d, 0xc3f11db1
+0x22c04775, 0x48d269bd, 0x19f59a14, 0x9530d109
+0x18d50e0c, 0x51be9fb3, 0x258fdaec, 0xacc460c1
+0xd1bab7c6, 0x15782d67, 0x32b35705, 0x623a8533
+0xa5855f93, 0x8044f94, 0x176e52e7, 0x1f245ea3
+0x344eafa4, 0xe3369e4e, 0xb6bd1d4b, 0xb9d2ba08
+0x740d9067, 0x6e7b71f7, 0x6a1fe8c, 0x8eeefe77
+0x6f7129fd, 0x1afb0083, 0x111825c, 0x1dfd200c
+0x10d86566, 0xda568bfd, 0x6cbac73, 0x2fd39e4d
+0x1827957c, 0xfd0bad12, 0x7fec9156, 0x4a95188f
+0x41a8b6c0, 0xe19239a7, 0xed9841a4, 0x2c6e6587
+0xb6554a13, 0x45871927, 0x78f7374d, 0x52ea62f
+0xb260586d, 0x77fe7656, 0xe5d14cd9, 0x4ef9384b
+0xa452a340, 0x65744d1a, 0x26f672c8, 0x5b13c3d8
+0x9fb60cea, 0xdb332076, 0x95e3a8df, 0x50aa036e
+0x1dcc861d, 0x8775155, 0xa019bb5c, 0x4a663e93
+0xb7e06a72, 0xa86adc5a, 0x6bb7686c, 0x59e449fb
+0xdb874079, 0x74a826e5, 0x926138db, 0x616a5acb
+0x6a968559, 0x460df3e9, 0x5313b43, 0x986254bb
+0x6810cd12, 0xfc782c71, 0x4f1210e7, 0x53e246c0
+0xc6293547, 0x7bdfbbac, 0x340ea9fc, 0x9a49a44a
+0x5f094efc, 0x7eee8b7, 0xd0337179, 0xf09a07b8
+0xe9e743ec, 0x15f9856f, 0xa259d08a, 0xf76ec74b
+0x2a50672b, 0x16f6c5a5, 0xbf5cf3dc, 0x653248f4
+0x89a785f3, 0x42ff7655, 0x3617c204, 0xff09013d
+0x934fa46c, 0x4d2619bb, 0x990a8d97, 0x9a766d59
+0x1e85ab1d, 0x9157444f, 0x77a80f9, 0xeffca7ab
+0xb61392b4, 0x5b4ebfc8, 0x3b15b5cd, 0xcfdef9eb
+0x2f62b841, 0xe44d588, 0x14bcd8c6, 0xf6a90ed
+0x690ffdb7, 0x508a2745, 0xcae88257, 0xb73d5cfa
+0xb6a18047, 0xa27dcc3e, 0x19b621b5, 0xd9efbaca
+0xed1b95de, 0x1dab245f, 0x4ac23719, 0x8acb253
+0x6b410d1b, 0x400cb005, 0x3f2a0694, 0xb1178a91
+0x7bc01b7a, 0x306ab0ee, 0xf843f0e3, 0x59f5fc20
+0xfb5af447, 0xea07971, 0xfe873a53, 0xe36b88ef
+0xa316a68c, 0xaa2b94cd, 0xf53de0c1, 0x12e0ba4a
+0x2c46accc, 0xc86f7c7e, 0xe31dbcf4, 0xc5c9a057
+0x730b36d8, 0xb7554edc, 0xe0280b8b, 0x2e6c9d9a
+0x8b33f469, 0xa9955a2c, 0xeec66fdd, 0xd59a502f
+0x5b1ef5f1, 0xc3a2c310, 0x4dd5acb, 0xe103bcc4
+0xe07acccf, 0x27c2bfdc, 0xfd1f24d7, 0x3526004c
+0x56fb320e, 0xb495758d, 0x99cf879b, 0x6b33c2f5
+0xbc0fb2a0, 0x13dc87, 0xda2b4c6d, 0x19825e10
+0x470e9746, 0xb4583950, 0x8ee0b248, 0x7f580323
+0x59ace029, 0xbaf7c504, 0x640391ad, 0xd2a80dd7
+0xdef5b110, 0x54b6dda0, 0xa58dce3d, 0x9cfefa4
+0x44af58f, 0x4bf6b52f, 0x8ae92664, 0x4837325e
+0xb7318f73, 0x1382e727, 0xb74f9886, 0x757727c
+0xd39de535, 0x79a32a56, 0x1c0e091a, 0xee4a4699
+0xe1ae1f4e, 0x3c093073, 0x37fdd0c2, 0x35d28243
+0xda157ca9, 0x45a211c, 0x5d4df84e, 0xd37c9e9c
+0x29c288e5, 0x62035e49, 0x7ad03b62, 0x59c889fc
+0xbe59ee39, 0xf1bcaf15, 0xc4f51b94, 0x1aba2d2a
+0xf4c8a988, 0x662171ee, 0x1e9f6c8c, 0xda8fec5b
+0x626aa6c5, 0x59c5b89f, 0x7b9f93c6, 0xbb64839
+0x2494c140, 0xf946b33c, 0x1d701344, 0xa504aa9f
+0x42d6bbc0, 0x73ea8773, 0xa68c62b8, 0xa9b88b48
+0x92322bd7, 0x4799ec0d, 0xf2ea3d9e, 0x822b6f1d
+0x178eac2, 0xf6cd9842, 0x9bacbc8f, 0x8a3fa6ff
+0x4c0309ca, 0x1b292811, 0x53a3400e, 0xcd26d567
+0x37e64ff2, 0x8d0ec60, 0x94d381b4, 0xb67d2354
+0x33624043, 0xc084cc8, 0xb58b0e07, 0x30c4cd98
+0x6e57de30, 0x77cf8722, 0xb8898f0e, 0x33a5d1a4
+0x1d29644d, 0x772a80d8, 0xfb4f8d3c, 0x1b25d7d4
+0x6c454e7b, 0x6da73a97, 0x2d84913b, 0x5e8d3c2d
+0x379d549b, 0x431b6d54, 0x5da65957, 0xe1013ee0
+0xa6112547, 0xf630dd09, 0xe8852611, 0x88a884a4
+0x44395424, 0x70dcc1e7, 0xbd6c335a, 0x571745e
+0x2e6bb021, 0xfa4280ad, 0x21c36608, 0x4e352b45
+0xfbc5cb04, 0x4c458fd7, 0xd207e378, 0xf6972733
+0xe2e7b00f, 0xd3236bce, 0x6851afc3, 0xf8f99853
+0xccecf753, 0x35b283d7, 0xb9c77aca, 0x68cb4d35
+0xbf18b593, 0xcaf9f85d, 0xb7649825, 0xa5419f4
+0x19888240, 0xbea3e529, 0xc3abf622, 0x463b2552
+0xc733b35f, 0xd391bbef, 0x598f5c2b, 0x3208db81
+0x9f5507a3, 0x6058bea6, 0xda4d43a, 0xaef6cdcd
+0x917cd3f0, 0xa730ce10, 0xc5b08db1, 0xa4cf4fd0
+0x381c0de9, 0xd7387136, 0x6c92de5d, 0xb9c2374a
+0x58a20a3c, 0x26ac8704, 0x6f8aa638, 0x858a866a
+0x259f93bd, 0x3005608, 0xfe37f77c, 0x5d94f3d
+0xaea06052, 0x8e555efc, 0x39577e6e, 0x5cfda5
+0x6878350b, 0xa7cf50dc, 0x8d401347, 0x1a3d6153
+0xc524c23, 0xbffea23b, 0x9b465df9, 0xaf43e161
+0xbd941f66, 0x1b90da0d, 0xbca5e901, 0x687ff020
+0x7e5ff198, 0x36a9ae4e, 0xac5d046c, 0x55740438
+0xd97c3eed, 0xba9208cf, 0xdc9880a9, 0xe3fd6dca
+0xf379fcd5, 0x6148a00f, 0xc4ca5774, 0x4a470b38
+0x96428eda, 0x505ca712, 0xf06ec81, 0x68a11cf0
+0xfd4c3994, 0x3980934f, 0x7afcd974, 0xe4e57b8
+0xa2f67820, 0x6dc0cff, 0xa6866aaf, 0x41c932d
+0xaa3bf494, 0x80168ced, 0x62b419a8, 0x77f7ce97
+0x5254e55a, 0x98e6076a, 0xfd0c655d, 0x97e45e1e
+0x842c0cf, 0x2943d3e, 0x206bcf90, 0xbd54665f
+0x7294802f, 0xeb42b50f, 0x269c75a6, 0x687d2b51
+0x4c462757, 0x311eadbf, 0x394b975c, 0x3777e61a
+0x840f7361, 0x4fea98d8, 0x2f7668b3, 0xc3a5cc95
+0x81fe983, 0x6fc81f31, 0x135c11d1, 0xd0724796
+0x9b6e17c2, 0x57039793, 0x8a4e1ed9, 0x830687ff
+0x4b8ebe4f, 0xa0afc739, 0xd718dc35, 0x5f6986b4
+0xad2740b6, 0xb5adc7cb, 0xfa800458, 0x3a7baacf
+0x6b478d4a, 0x9b32b47b, 0x9b061067, 0x51a0489d
+0xb908440b, 0x2d88d434, 0x35544809, 0xe699700b
+0x42af1d01, 0xec4b6187, 0x32403454, 0x3cf32ba3
+0xf2ef1b4a, 0xce84f810, 0x4f00d43a, 0xe00d9a16
+0x8514e5fc, 0xcdf182fe, 0x84900f1e, 0x3c267e90
+0x29f0331e, 0x4b6106a1, 0x16ec8d20, 0x33b1cbaa
+0x129fee49, 0x3dedbff7, 0xda220001, 0xe010d777
+0xb52606f3, 0xb8c28a7c, 0xf637add2, 0xbfc2f2bc
+0x867d4aba, 0x8c6cc148, 0x98941362, 0xb58ee68f
+0xd219a1b2, 0x124dbec2, 0xcfbbab6b, 0x27a99962
+0x245326a0, 0x4de80922, 0x8699d57d, 0xfd9b38ff
+0xf636a437, 0x522b9aab, 0x7a1e2bbc, 0x5e741329
+0x7a81e94, 0x98939ba9, 0xf65fc9f5, 0xd6500b9d
+0xb316c27c, 0x4a32ea28, 0x733f9246, 0x8b850f42
+0x7971010c, 0x533660ab, 0xe737220a, 0xc44c581e
+0xe1e05a41, 0xe5b8c6f8, 0xf40f9a7e, 0x20e65b4f
+0xde4d1496, 0x535c8df3, 0xd5ca2721, 0x6c79cc71
+0xd1cb61af, 0xae50911e, 0xe4fa42db, 0x67097ee7
+0x16bd1c93, 0x27d96f11, 0xdd559bbc, 0x16f0f922
+0x7252bf0e, 0xf12df1ae, 0x53d55bd8, 0x196c1220
+0xa81bf4dc, 0xe172b7de, 0xe689814f, 0xc2b99304
+0x426ff241, 0x387410ce, 0xdf7e5e41, 0xd1797ac4
+0xaabf2fd5, 0xbc646237, 0xe27780c4, 0xf4be0518
+0x167c4c13, 0xf93dba8a, 0xb1dd51dc, 0x56e09df9
+0xf61f3b4c, 0xeb050d6f, 0xc7b2de90, 0x690975c3
+0x5da30e97, 0x5d9bb92f, 0x4403dcf7, 0x79475c0d
+0x28dd0905, 0xa400a35e, 0x4fc41fe, 0x8ff7c219
+0xfa89beb6, 0x871fd0d, 0xe5e3883, 0x712b0521
+0x47c7ff08, 0x4f6c6fd5, 0xc90ec318, 0x1e9b1a98
+0x3c4121f4, 0xab8558c7, 0x2742c581, 0xd4831ae5
+0x38495d10, 0x28563d57, 0x85a1c643, 0xd816882a
+0xf8719231, 0x768e9fa4, 0x66a4981a, 0xfe3e1a0b
+0x70058d32, 0x7711c907, 0x6c930655, 0x7cd6732f
+0x52634b03, 0x8b8ac09d, 0x3ebe66f2, 0xc51a81cf
+0xcef42d08, 0xd81f8424, 0x64c8a4db, 0x4420e0d6
+0x2e96e0b0, 0x47fa95b0, 0xa771f1c3, 0x24c5ca64
+0x85852c19, 0x26b217eb, 0xeaf93527, 0x82155bec
+0xc5b16846, 0x7c0031f5, 0x80a462ad, 0x2f4247c6
+0xad7d2767, 0x7289fd71, 0x25c411ab, 0x9772bcd6
+0x342ea6e4, 0xb660eb2f, 0x24b8ebb7, 0xe08c66da
+0x94d7a8ad, 0xe9369d98, 0x3c774530, 0x545b9170
+0x825ee892, 0xed9ae855, 0x3d41d119, 0xa0e93f70
+0x95467af, 0xa49b65f6, 0x173cabe4, 0x44a63138
+0xf7ac7848, 0x3e5a7de6, 0x467fc3bd, 0x1811a98e
+0xca65a9e6, 0xd90300b9, 0xd220b46c, 0xbf792160
+0xd279daee, 0x8828d9de, 0x13944872, 0x5aed643f
+0x14d5a7c1, 0xe0c0a42d, 0x670b9779, 0x47f9160e
+0x94cf9cad, 0x9e191dfa, 0x4a675103, 0x86554946
+0xa78f70d5, 0x665d16f4, 0x7cafe103, 0x38217471
+0xd5a61fc8, 0xab64eb89, 0x2af9dd0, 0xf320c3ba
+0xa2683df4, 0x5f44d858, 0x30f5ac75, 0x2d2e7a92
+0xf903f69b, 0x98f1aca8, 0x2d90ac32, 0xa6ee6433
+0x4bc911d5, 0x83cf6b49, 0x38e2a53a, 0x6c6c4d39
+0xdb6feeca, 0x81e2f051, 0x9985252d, 0xd677174
+0x6274a84c, 0x3d663c66, 0x4934b3f6, 0xaaa0987c
+0xd04467f7, 0x80c05983, 0xe839a84f, 0x9d420a2d
+0x8d71f457, 0xc439087f, 0x150f93bd, 0xc314d1fc
+0x5e1ee4b, 0xb459388d, 0xb38eee3d, 0x5ee300e4
+0x78c8f18a, 0x434afd89, 0x7642d88c, 0x2175f96a
+0x276b71d, 0xf13c3456, 0x83f6d2b5, 0xd9d64334
+0x122e79f9, 0xdabd4282, 0xa852297d, 0x2e6946f1
+0x21aaea69, 0x3268569b, 0x5f5f293, 0x814253c9
+0xc2497cd6, 0x5610fec4, 0xb3d2211d, 0xb93f75f1
+0x230d1611, 0x9d86d4e4, 0x59b21666, 0x27c993a9
+0x2043aae8, 0x16d81349, 0xb530a3d5, 0x5f441d47
+0x7c45206a, 0x626163c9, 0xed19a876, 0x91021fe8
+0x9e6ccdeb, 0xb81dbb63, 0x16a65226, 0x8218dd71
+0xd97f6ced, 0x4e6c2ff8, 0x5aa51b82, 0x87ac4a22
+0x5066e7ac, 0x8f503030, 0x1a2fca85, 0x4a2e5ddf
+0xa1688e34, 0xb9344f9c, 0xce64a21e, 0x101e9efd
+0xec88982, 0xde0d3619, 0x4b5165d5, 0x7169cf74
+0x4702494b, 0xdc5fb1fd, 0x38b571a5, 0x8b7003a0
+0x4fa25217, 0xce642de4, 0x40e1d946, 0xc1bd596f
+0x63fc18b5, 0x793f67b4, 0x36e72a97, 0x9b1741e6
+0x1d265476, 0x2c39cc2c, 0xd5f80aa, 0x56c82285
+0xa2bc3e3f, 0x629b0857, 0x86022d4b, 0xca670225
+0x7c3e7487, 0x9b172657, 0xd954d742, 0x4d5ff9db
+0x13eaa6b, 0x888a907c, 0xc00bebe7, 0xa2b19da
+0x26b4f336, 0x8065b089, 0x4adfd02c, 0x7e07f9d
+0xb3cfea4, 0x4624325c, 0x9f148e67, 0x92ec0f33
+0x4caa1c1a, 0xf4d33256, 0x39cdf50, 0x87ea3fe7
+0x11600a0f, 0x442f2b94, 0x660ef7a9, 0x8ffec15e
+0x617bd7d3, 0xf747d975, 0x949e3c51, 0x66e55c5a
+0x4ece7ce9, 0x8c30a3c, 0x69af9b81, 0x7a235659
+0x4f77a380, 0x118ddc8a, 0xc26b0daa, 0x6e52aede
+0xff67f6ed, 0x51ec715f, 0x869f3c0a, 0x2bc57e6b
+0x5d3c4a30, 0xe3ba461a, 0xfafadb63, 0x5252b4da
+0xf6892373, 0xb1ff4489, 0x9c64dd0a, 0x5c2eb54a
+0x9de1f4fc, 0x6f611e0d, 0x8fb7354a, 0x689de951
+0x502476f9, 0xd64e591, 0x6d946258, 0x7e582105
+0xf67b2384, 0x429e52ca, 0x68125fd7, 0x12c56d60
+0x88f97efe, 0x7b1d2c69, 0xb0916b4a, 0x24af31d9
+0x11d9cb03, 0x6f1cf848, 0xb4184f81, 0xa594b2a
+0xd510fac7, 0xe2c56ea8, 0x801b302f, 0xc0b18b14
+0xc05d43cf, 0x5c1a58b, 0x8890f99f, 0x7b072ee2
+0x8a4313f6, 0x20121569, 0xc9f59d7c, 0xac103b8a
+0x46bf5047, 0xec893073, 0x1a8c3f98, 0x11167605
+0xf2561f14, 0xd408d7db, 0x336c48e1, 0x540c8e5e
+0x14deedcc, 0x2d30a4ff, 0x8921d073, 0x395229ac
+0x58619422, 0xba50b447, 0xb2251fa2, 0x4a023c82
+0x5ebfdc43, 0xd862fc65, 0x5152da20, 0xdd89b342
+0xc5c85a1, 0xb4930bef, 0xf49ae47, 0xb5566962
+0xa07de3c, 0x9f95dc9d, 0x7b502c9, 0x56086be9
+0xdd0bf4a, 0xb192397, 0x827503b0, 0xacdadb88
+0x290da7a0, 0x45f671ab, 0xe72dda14, 0xc05ec6ba
+0xd94fdac8, 0x78e9b685, 0x2da08e03, 0x512847b4
+0xc81e369b, 0xffb9e512, 0xb27b6344, 0xe938789
+0xa3fd5452, 0xefe0fcdb, 0x9f0ead14, 0x2de9bfff
+0xcc4bacbb, 0xc03a72, 0x50082d48, 0xb4f948c4
+0x5d1b2406, 0x4e6f65cc, 0x48a59577, 0x23a6739
+0x50c4ffa6, 0x44f0bca0, 0xc61353c3, 0xea15d726
+0x4e9d8ba, 0x2c1771fb, 0xb8e87dc8, 0xbf0f8196
+0xd9b7425a, 0xe31d080, 0x21ff3c11, 0x6ebebfc9
+0x3b3044c1, 0x626412bc, 0x1d61d123, 0x23c562c5
+0x52ac5ac1, 0x4eec501e, 0x9050ed70, 0xc43b6353
+0xa02793b6, 0xa9eda9dd, 0x9d17ace5, 0x5945a014
+0xb26346ab, 0xc50f314b, 0xc98ad086, 0xdd6168a7
+0x72d33ffc, 0x6c9125f6, 0xfe8c8f15, 0x9b8fba3b
+0x70182e9, 0xf090565c, 0x23b3e493, 0x8c0b6a4c
+0x30f4383d, 0x962b7d1d, 0x3e170cbc, 0x47e82854
+0x6537d2fe, 0xb881a2ce, 0x77fc73e3, 0xf80db80c
+0x9cbbeb98, 0xb4ab5c65, 0x47636557, 0xc8b84ebd
+0x51601e0b, 0xe1cafc13, 0x74908102, 0x920022d
+0x80ea7aff, 0x6695b523, 0x946ff7a4, 0xa68ce20c
+0xd76daeaf, 0xedaa5a1, 0x7784da4c, 0x20068947
+0x1db63e23, 0xddb84cdc, 0xa59acef9, 0xee53a168
+0x1de15de3, 0x6496d2c0, 0x795b6eda, 0x5e1132c9
+0x6e8584ef, 0xbbd92a23, 0xa5cd301e, 0x53b9340f
+0x20797345, 0xc51a6930, 0x8cdfa2f2, 0x87062aaf
+0x2a3824ba, 0x502bdb59, 0xf8a10c5, 0x52a1d16b
+0x748dc39d, 0x3f25488a, 0x48ecab10, 0xfd5e349a
+0x96019dfa, 0x8764bc0, 0x3e9082e2, 0x2ec4fa7f
+0x2c99c870, 0x4e4a813e, 0x3767439d, 0x22d6ce03
+0x4138dbe9, 0x282620ab, 0xa778834f, 0x167771fa
+0xf0081582, 0x4510e0cc, 0x23460005, 0xefad389d
+0x745243a9, 0xc3cddf19, 0x71d920bf, 0xf4029816
+0xda9306cc, 0x497b2f21, 0x9413c99c, 0xbf1e8774
+0xf26033e4, 0xdd61d524, 0xd44e38a9, 0xc199243
+0xcbdceac3, 0x46378a33, 0xc9c139c9, 0xce761198
+0xc0244d9, 0x1cfcf55d, 0xa7aa619f, 0xc49d5df3
+0x9d1152f3, 0x3648b24c, 0xa9801343, 0x9b286b07
+0x71833a35, 0x956e026c, 0xfea14d38, 0x1b3099d
+0x49e8cb79, 0xd8b4dc6a, 0x6b44aadf, 0x62ff40e5
+0x36a54b9f, 0xb75c3ae3, 0x7a9c381, 0x3dd9d64d
+0x894c6df2, 0x61d5040a, 0x9dc987e6, 0xa2b8036d
+0x130557b0, 0x2c257da9, 0x68fba8dd, 0x2d505760
+0x1af58e01, 0x8740ec66, 0x93cc7e1c, 0x1797e791
+0xb939084a, 0x3b54b6c0, 0x2d4c06b1, 0x6d92e642
+0xf9a68383, 0xd76cf1f0, 0x5f5f4b20, 0x3bc1af40
+0x7472ecbc, 0xfb544212, 0x30b959fc, 0x9e6d36f2
+0xb241833c, 0xec5da639, 0x2fd914ed, 0x5982d409
+0x13dead1d, 0x836d461e, 0x737d1a8b, 0xe4c79c95
+0xe709e347, 0xcb8503aa, 0x3bc94739, 0x31943141
+0x37632629, 0x8e611406, 0x38706243, 0x8a0a7e55
+0x63e8516, 0x4129a900, 0xfe46e0b2, 0xdd2de2c6
+0x7bec6c18, 0x225fdbd0, 0xf4d3fca4, 0x7391c49a
+0x2504d709, 0x1cc8d383, 0xd77afdaf, 0x5439db86
+0x4b4637ce, 0xdb725a4f, 0x7069a0e5, 0x9cf14fdf
+0xd509bb83, 0xabc57f4f, 0xde553164, 0x6e43dddc
+0xe2563f3c, 0xf3e6f5e9, 0x51a44b01, 0x8b4ef0f1
+0x43b189fc, 0xb6ecc042, 0x1e7d8bad, 0x48bffbfd
+0x7b5ac87c, 0x6d1db815, 0x21f74cf3, 0x15cb251e
+0xaa0e7b7a, 0xdb19a8a9, 0x90467c96, 0x6f73661d
+0x88ee6ea8, 0xfb0a59be, 0x3bc1b57b, 0x325f79a1
+0xe8bab8e4, 0x4e8a275f, 0x1ea5afda, 0x4162086b
diff --git a/benchtests/inet_ntop_ipv6-source.c b/benchtests/inet_ntop_ipv6-source.c
new file mode 100644
index 0000000..f255c27
--- /dev/null
+++ b/benchtests/inet_ntop_ipv6-source.c
@@ -0,0 +1,10 @@
+#include <arpa/inet.h>
+#include <stdint.h>
+
+static void
+inet_ntop_ipv6 (uint32_t addr1, uint32_t addr2, uint32_t addr3, uint32_t addr4)
+{
+ struct in6_addr saddr = { .s6_addr32 = { addr1, addr2, addr3, addr4 } };
+ char dst[INET6_ADDRSTRLEN];
+ inet_ntop (AF_INET6, &saddr, dst, sizeof dst);
+}
diff --git a/elf/Makefile b/elf/Makefile
index 05a78dc..8a31a29 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -3362,9 +3362,11 @@ $(objpfx)tst-dlopen-auditdup.out: \
# Reuse an audit module which provides ample debug logging.
tst-rtld-no-malloc-audit-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
+$(objpfx)tst-rtld-no-malloc-audit.out: $(objpfx)tst-auditmod1.so
# Any shared object should do.
tst-rtld-no-malloc-preload-ENV = LD_PRELOAD=$(objpfx)tst-auditmod1.so
+$(objpfx)tst-rtld-no-malloc-preload.out: $(objpfx)tst-auditmod1.so
LDFLAGS-tst-hash-collision1-mod.so = -Wl,--hash-style=both
$(objpfx)tst-hash-collision1: $(objpfx)tst-hash-collision1-mod.so
diff --git a/elf/rtld.c b/elf/rtld.c
index e6a181d..9038a50 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -476,11 +476,10 @@ _dl_start_final (void *arg, struct dl_start_final_info *info)
#endif
_dl_setup_hash (&_dl_rtld_map);
_dl_rtld_map.l_real = &_dl_rtld_map;
- _dl_rtld_map.l_map_start = (ElfW(Addr)) &__ehdr_start;
- /* Prevent run-time relocations against __ehdr_start and _end. */
- asm ("" : "+g" (_dl_rtld_map.l_map_start));
- _dl_rtld_map.l_map_end = (ElfW(Addr)) _end;
- asm ("" : "+g" (_dl_rtld_map.l_map_end));
+ _dl_rtld_map.l_map_start
+ = (ElfW(Addr)) DL_ADDRESS_WITHOUT_RELOC (&__ehdr_start);
+ _dl_rtld_map.l_map_end
+ = (ElfW(Addr)) DL_ADDRESS_WITHOUT_RELOC (_end);
/* Copy the TLS related data if necessary. */
#ifndef DONT_USE_BOOTSTRAP_MAP
# if NO_TLS_OFFSET != 0
diff --git a/include/elf.h b/include/elf.h
index 14ed67f..1424982 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -15,6 +15,19 @@
# define ELF_NOTE_NEXT_OFFSET(namesz, descsz, align) \
ALIGN_UP (ELF_NOTE_DESC_OFFSET ((namesz), (align)) + (descsz), (align))
+# ifdef HIDDEN_VAR_NEEDS_DYNAMIC_RELOC
+# define DL_ADDRESS_WITHOUT_RELOC(expr) (expr)
+# else
+/* Evaluate EXPR without run-time relocation for it. EXPR should be an
+ array, an address of an object, or a string literal. */
+# define DL_ADDRESS_WITHOUT_RELOC(expr) \
+ ({ \
+ __auto_type _result = (expr); \
+ asm ("" : "+r" (_result)); \
+ _result; \
+ })
+# endif
+
/* Some information which is not meant for the public and therefore not
in <elf.h>. */
# include <dl-dtprocnum.h>
diff --git a/include/stdio.h b/include/stdio.h
index e48d709..3d917db 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -173,6 +173,10 @@ libc_hidden_proto (__fortify_fail)
/* The maximum number of varargs allowed in a __libc_message format string */
#define LIBC_MESSAGE_MAX_ARGS 4
+#define IOVEC_MAX_ERR_MSG "Fatal glibc error: Internal " \
+ "__libc_message error. Too many arguments.\n"
+#define IOVEC_MAX_ERR_MSG_LEN (sizeof (IOVEC_MAX_ERR_MSG) - 1)
+
_Noreturn void __libc_message_impl (const char *__fnt, ...) attribute_hidden
__attribute__ ((__format__ (__printf__, 1, 2)));
diff --git a/inet/inet_ntoa.c b/inet/inet_ntoa.c
index a4543f6..2efd24e 100644
--- a/inet/inet_ntoa.c
+++ b/inet/inet_ntoa.c
@@ -23,15 +23,12 @@
/* The interface of this function is completely stupid, it requires a
static buffer. We relax this a bit in that we allow one buffer for
each thread. */
-static __thread char buffer[18];
+static __thread char buffer[INET_ADDRSTRLEN];
char *
inet_ntoa (struct in_addr in)
{
- unsigned char *bytes = (unsigned char *) &in;
- __snprintf (buffer, sizeof (buffer), "%d.%d.%d.%d",
- bytes[0], bytes[1], bytes[2], bytes[3]);
-
+ __inet_ntop (AF_INET, &in, buffer, sizeof buffer);
return buffer;
}
diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c
index fbb0301..f5ca5fb 100644
--- a/malloc/malloc-check.c
+++ b/malloc/malloc-check.c
@@ -111,7 +111,7 @@ mem2chunk_check (void *mem, unsigned char **magic_p)
INTERNAL_SIZE_T sz, c;
unsigned char magic;
- if (!aligned_OK (mem))
+ if (misaligned_mem (mem))
return NULL;
p = mem2chunk (mem);
diff --git a/malloc/malloc-debug.c b/malloc/malloc-debug.c
index d208aa3..8bcb565 100644
--- a/malloc/malloc-debug.c
+++ b/malloc/malloc-debug.c
@@ -169,7 +169,7 @@ static void *
__debug_malloc (size_t bytes)
{
void *(*hook) (size_t, const void *) = atomic_forced_read (__malloc_hook);
- if (__builtin_expect (hook != NULL, 0))
+ if (__glibc_unlikely (hook != NULL))
return (*hook)(bytes, RETURN_ADDRESS (0));
void *victim = NULL;
@@ -193,7 +193,7 @@ static void
__debug_free (void *mem)
{
void (*hook) (void *, const void *) = atomic_forced_read (__free_hook);
- if (__builtin_expect (hook != NULL, 0))
+ if (__glibc_unlikely (hook != NULL))
{
(*hook)(mem, RETURN_ADDRESS (0));
return;
@@ -218,7 +218,7 @@ __debug_realloc (void *oldmem, size_t bytes)
{
void *(*hook) (void *, size_t, const void *) =
atomic_forced_read (__realloc_hook);
- if (__builtin_expect (hook != NULL, 0))
+ if (__glibc_unlikely (hook != NULL))
return (*hook)(oldmem, bytes, RETURN_ADDRESS (0));
size_t orig_bytes = bytes, oldsize = 0;
@@ -272,7 +272,7 @@ _debug_mid_memalign (size_t alignment, size_t bytes, const void *address)
{
void *(*hook) (size_t, size_t, const void *) =
atomic_forced_read (__memalign_hook);
- if (__builtin_expect (hook != NULL, 0))
+ if (__glibc_unlikely (hook != NULL))
return (*hook)(alignment, bytes, address);
void *victim = NULL;
@@ -371,7 +371,7 @@ __debug_calloc (size_t nmemb, size_t size)
}
void *(*hook) (size_t, const void *) = atomic_forced_read (__malloc_hook);
- if (__builtin_expect (hook != NULL, 0))
+ if (__glibc_unlikely (hook != NULL))
{
void *mem = (*hook)(bytes, RETURN_ADDRESS (0));
diff --git a/malloc/malloc.c b/malloc/malloc.c
index d28cd66..6da40ad 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -590,7 +590,7 @@ tag_at (void *ptr)
differs across systems, but is in all cases less than the maximum
representable value of a size_t.
*/
-void* __libc_malloc(size_t);
+void *__libc_malloc (size_t);
libc_hidden_proto (__libc_malloc)
static void *__libc_calloc2 (size_t);
@@ -1309,11 +1309,9 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/* Check if m has acceptable alignment */
-#define aligned_OK(m) (((unsigned long)(m) & MALLOC_ALIGN_MASK) == 0)
+#define misaligned_mem(m) ((uintptr_t)(m) & MALLOC_ALIGN_MASK)
-#define misaligned_chunk(p) \
- ((uintptr_t)(MALLOC_ALIGNMENT == CHUNK_HDR_SZ ? (p) : chunk2mem (p)) \
- & MALLOC_ALIGN_MASK)
+#define misaligned_chunk(p) (misaligned_mem( chunk2mem (p)))
/* pad request bytes into a usable size -- internal version */
/* Note: This must be a macro that evaluates to a compile time constant
@@ -1623,7 +1621,7 @@ unlink_chunk (mstate av, mchunkptr p)
mchunkptr fd = p->fd;
mchunkptr bk = p->bk;
- if (__builtin_expect (fd->bk != p || bk->fd != p, 0))
+ if (__glibc_unlikely (fd->bk != p || bk->fd != p))
malloc_printerr ("corrupted double-linked list");
fd->bk = bk;
@@ -2103,7 +2101,7 @@ do_check_chunk (mstate av, mchunkptr p)
/* chunk is page-aligned */
assert (((prev_size (p) + sz) & (GLRO (dl_pagesize) - 1)) == 0);
/* mem is aligned */
- assert (aligned_OK (chunk2mem (p)));
+ assert (!misaligned_chunk (p));
}
}
@@ -2127,7 +2125,7 @@ do_check_free_chunk (mstate av, mchunkptr p)
if ((unsigned long) (sz) >= MINSIZE)
{
assert ((sz & MALLOC_ALIGN_MASK) == 0);
- assert (aligned_OK (chunk2mem (p)));
+ assert (!misaligned_chunk (p));
/* ... matching footer field */
assert (prev_size (next_chunk (p)) == sz);
/* ... and is fully consolidated */
@@ -2206,7 +2204,7 @@ do_check_remalloced_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T s)
assert ((sz & MALLOC_ALIGN_MASK) == 0);
assert ((unsigned long) (sz) >= MINSIZE);
/* ... and alignment */
- assert (aligned_OK (chunk2mem (p)));
+ assert (!misaligned_chunk (p));
/* chunk is less than MINSIZE more than request */
assert ((long) (sz) - (long) (s) >= 0);
assert ((long) (sz) - (long) (s + MINSIZE) < 0);
@@ -3094,7 +3092,7 @@ mremap_chunk (mchunkptr p, size_t new_size)
p = (mchunkptr) (cp + offset);
- assert (aligned_OK (chunk2mem (p)));
+ assert (!misaligned_chunk (p));
assert (prev_size (p) == offset);
set_head (p, (new_size - offset) | IS_MMAPPED);
@@ -3207,7 +3205,7 @@ tcache_get_n (size_t tc_idx, tcache_entry **ep, bool mangled)
else
e = REVEAL_PTR (*ep);
- if (__glibc_unlikely (!aligned_OK (e)))
+ if (__glibc_unlikely (misaligned_mem (e)))
malloc_printerr ("malloc(): unaligned tcache chunk detected");
void *ne = e == NULL ? NULL : REVEAL_PTR (e->next);
@@ -3331,7 +3329,7 @@ tcache_double_free_verify (tcache_entry *e)
{
if (cnt >= mp_.tcache_count)
malloc_printerr ("free(): too many chunks detected in tcache");
- if (__glibc_unlikely (!aligned_OK (tmp)))
+ if (__glibc_unlikely (misaligned_mem (tmp)))
malloc_printerr ("free(): unaligned chunk detected in tcache 2");
if (tmp == e)
malloc_printerr ("free(): double free detected in tcache 2");
@@ -3365,7 +3363,7 @@ tcache_thread_shutdown (void)
while (tcache_tmp->entries[i])
{
tcache_entry *e = tcache_tmp->entries[i];
- if (__glibc_unlikely (!aligned_OK (e)))
+ if (__glibc_unlikely (misaligned_mem (e)))
malloc_printerr ("tcache_thread_shutdown(): "
"unaligned tcache chunk detected");
tcache_tmp->entries[i] = REVEAL_PTR (e->next);
@@ -3376,13 +3374,11 @@ tcache_thread_shutdown (void)
__libc_free (tcache_tmp);
}
+/* Initialize tcache. In the rare case there isn't any memory available,
+ later calls will retry initialization. */
static void
-tcache_init(void)
+tcache_init (void)
{
- mstate ar_ptr;
- void *victim = NULL;
- const size_t bytes = sizeof (tcache_perthread_struct);
-
if (tcache_shutting_down)
return;
@@ -3391,31 +3387,15 @@ tcache_init(void)
if (MAX_TCACHE_SMALL_SIZE >= GLRO (dl_pagesize) / 2)
malloc_printerr ("max tcache size too large");
- arena_get (ar_ptr, bytes);
- victim = _int_malloc (ar_ptr, bytes);
- if (!victim && ar_ptr != NULL)
- {
- ar_ptr = arena_get_retry (ar_ptr, bytes);
- victim = _int_malloc (ar_ptr, bytes);
- }
-
+ size_t bytes = sizeof (tcache_perthread_struct);
+ tcache = (tcache_perthread_struct *) __libc_malloc2 (bytes);
- if (ar_ptr != NULL)
- __libc_lock_unlock (ar_ptr->mutex);
-
- /* In a low memory situation, we may not be able to allocate memory
- - in which case, we just keep trying later. However, we
- typically do this very early, so either there is sufficient
- memory, or there isn't enough memory to do non-trivial
- allocations anyway. */
- if (victim)
+ if (tcache != NULL)
{
- tcache = (tcache_perthread_struct *) victim;
- memset (tcache, 0, sizeof (tcache_perthread_struct));
+ memset (tcache, 0, bytes);
for (int i = 0; i < TCACHE_MAX_BINS; i++)
tcache->num_slots[i] = mp_.tcache_count;
}
-
}
static void * __attribute_noinline__
@@ -3630,8 +3610,8 @@ __libc_realloc (void *oldmem, size_t bytes)
never wraps around at the end of the address space. Therefore
we can exclude some size values which might appear here by
accident or by "design" from some intruder. */
- if ((__builtin_expect ((uintptr_t) oldp > (uintptr_t) -oldsize, 0)
- || __builtin_expect (misaligned_chunk (oldp), 0)))
+ if (__glibc_unlikely ((uintptr_t) oldp > (uintptr_t) -oldsize
+ || misaligned_chunk (oldp)))
malloc_printerr ("realloc(): invalid pointer");
nb = checked_request2size (bytes);
@@ -3901,7 +3881,7 @@ __libc_calloc2 (size_t sz)
/* Two optional cases in which clearing not necessary */
if (chunk_is_mmapped (p))
{
- if (__builtin_expect (perturb_byte, 0))
+ if (__glibc_unlikely (perturb_byte))
return memset (mem, 0, sz);
return mem;
@@ -4066,7 +4046,7 @@ _int_malloc (mstate av, size_t bytes)
if (__glibc_likely (victim != NULL))
{
size_t victim_idx = fastbin_index (chunksize (victim));
- if (__builtin_expect (victim_idx != idx, 0))
+ if (__glibc_unlikely (victim_idx != idx))
malloc_printerr ("malloc(): memory corruption (fast)");
check_remalloced_chunk (av, victim, nb);
#if USE_TCACHE
@@ -4655,10 +4635,9 @@ _int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size, int have_lock)
#endif
) {
- if (__builtin_expect (chunksize_nomask (chunk_at_offset (p, size))
- <= CHUNK_HDR_SZ, 0)
- || __builtin_expect (chunksize (chunk_at_offset (p, size))
- >= av->system_mem, 0))
+ if (__glibc_unlikely (
+ chunksize_nomask (chunk_at_offset(p, size)) <= CHUNK_HDR_SZ
+ || chunksize (chunk_at_offset(p, size)) >= av->system_mem))
{
bool fail = true;
/* We might not have a lock at this point and concurrent modifications
@@ -4689,7 +4668,7 @@ _int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size, int have_lock)
{
/* Check that the top of the bin is not the record we are going to
add (i.e., double free). */
- if (__builtin_expect (old == p, 0))
+ if (__glibc_unlikely (old == p))
malloc_printerr ("double free or corruption (fasttop)");
p->fd = PROTECT_PTR (&p->fd, old);
*fb = p;
@@ -4699,7 +4678,7 @@ _int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size, int have_lock)
{
/* Check that the top of the bin is not the record we are going to
add (i.e., double free). */
- if (__builtin_expect (old == p, 0))
+ if (__glibc_unlikely (old == p))
malloc_printerr ("double free or corruption (fasttop)");
old2 = old;
p->fd = PROTECT_PTR (&p->fd, old);
@@ -4712,7 +4691,7 @@ _int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size, int have_lock)
only if we have the lock, otherwise it might have already been
allocated again. */
if (have_lock && old != NULL
- && __builtin_expect (fastbin_index (chunksize (old)) != idx, 0))
+ && __glibc_unlikely (fastbin_index (chunksize (old)) != idx))
malloc_printerr ("invalid fastbin entry (free)");
}
@@ -4779,17 +4758,17 @@ _int_free_merge_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size)
if (__glibc_unlikely (p == av->top))
malloc_printerr ("double free or corruption (top)");
/* Or whether the next chunk is beyond the boundaries of the arena. */
- if (__builtin_expect (contiguous (av)
+ if (__glibc_unlikely (contiguous (av)
&& (char *) nextchunk
- >= ((char *) av->top + chunksize(av->top)), 0))
+ >= ((char *) av->top + chunksize(av->top))))
malloc_printerr ("double free or corruption (out)");
/* Or whether the block is actually not marked used. */
if (__glibc_unlikely (!prev_inuse(nextchunk)))
malloc_printerr ("double free or corruption (!prev)");
INTERNAL_SIZE_T nextsize = chunksize(nextchunk);
- if (__builtin_expect (chunksize_nomask (nextchunk) <= CHUNK_HDR_SZ, 0)
- || __builtin_expect (nextsize >= av->system_mem, 0))
+ if (__glibc_unlikely (chunksize_nomask (nextchunk) <= CHUNK_HDR_SZ
+ || nextsize >= av->system_mem))
malloc_printerr ("free(): invalid next size (normal)");
free_perturb (chunk2mem(p), size - CHUNK_HDR_SZ);
@@ -5046,9 +5025,9 @@ _int_realloc (mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize,
unsigned long remainder_size; /* its size */
/* oldmem size */
- if (__builtin_expect (chunksize_nomask (oldp) <= CHUNK_HDR_SZ, 0)
- || __builtin_expect (oldsize >= av->system_mem, 0)
- || __builtin_expect (oldsize != chunksize (oldp), 0))
+ if (__glibc_unlikely (chunksize_nomask (oldp) <= CHUNK_HDR_SZ
+ || oldsize >= av->system_mem
+ || oldsize != chunksize (oldp)))
malloc_printerr ("realloc(): invalid old size");
check_inuse_chunk (av, oldp);
@@ -5058,8 +5037,8 @@ _int_realloc (mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize,
next = chunk_at_offset (oldp, oldsize);
INTERNAL_SIZE_T nextsize = chunksize (next);
- if (__builtin_expect (chunksize_nomask (next) <= CHUNK_HDR_SZ, 0)
- || __builtin_expect (nextsize >= av->system_mem, 0))
+ if (__glibc_unlikely (chunksize_nomask (next) <= CHUNK_HDR_SZ
+ || nextsize >= av->system_mem))
malloc_printerr ("realloc(): invalid next size");
if ((unsigned long) (oldsize) >= (unsigned long) (nb))
diff --git a/manual/examples/memstrm.c b/manual/examples/memstrm.c
index 9ee6298..28be892 100644
--- a/manual/examples/memstrm.c
+++ b/manual/examples/memstrm.c
@@ -16,6 +16,7 @@
*/
#include <stdio.h>
+#include <stdlib.h>
int
main (void)
@@ -31,6 +32,7 @@ main (void)
fprintf (stream, ", world");
fclose (stream);
printf ("buf = `%s', size = %zu\n", bp, size);
+ free (bp);
return 0;
}
diff --git a/manual/filesys.texi b/manual/filesys.texi
index 46621e8..e1c7be8 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -1940,9 +1940,10 @@ file systems.
@comment Unaudited and therefore marked AC-Unsafe and AS-Unsafe by default
@safety{@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}}
This function is a descriptor-relative version of the @code{rename}
-function above. @xref{Descriptor-Relative Access}. The @var{oldname} is
-interpreted relative to @var{oldfiledes} and @var{newname} is interpreted
-relative to @var{newfiledes}.
+function above. @xref{Descriptor-Relative Access}. If @var{oldname} or
+@var{newname} is a relative path, it is interpreted relative to the
+directory associated with @var{oldfiledes} or @var{newfiledes},
+respectively. Absolute paths are interpreted in the usual way.
Compared to @code{rename}, some additional error conditions can occur.
@xref{Descriptor-Relative Access}.
diff --git a/posix/Makefile b/posix/Makefile
index c0e2242..36b8b14 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -348,6 +348,7 @@ tests-internal := \
bug-regex5 \
bug-regex20 \
bug-regex33 \
+ tst-libc-message \
# tests-internal
tests-container := \
@@ -391,6 +392,7 @@ endif
tests-static = \
tst-exec-static \
+ tst-libc-message \
tst-spawn-static \
# tests-static
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index 9ec5e0e..83f8861 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -537,7 +537,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
that it was properly set in the loop
above. */
DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+ DIAG_IGNORE_NEEDS_COMMENT (16, "-Wmaybe-uninitialized");
if (! is_range
# if WIDE_CHAR_VERSION
@@ -560,7 +560,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
above it will be properly set by the loop.
*/
DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+ DIAG_IGNORE_NEEDS_COMMENT (16, "-Wmaybe-uninitialized");
cold = wextra[1 + wextra[0]];
DIAG_POP_NEEDS_COMMENT;
# else
@@ -745,7 +745,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
means that it was properly set in the
loop above. */
DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+ DIAG_IGNORE_NEEDS_COMMENT (16, "-Wmaybe-uninitialized");
cend = wextra[1 + wextra[0]];
DIAG_POP_NEEDS_COMMENT;
# else
@@ -754,7 +754,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
wextra above it will be properly set by
the loop. */
DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+ DIAG_IGNORE_NEEDS_COMMENT (16, "-Wmaybe-uninitialized");
idx += 1 + extra[idx];
DIAG_POP_NEEDS_COMMENT;
/* Adjust for the alignment. */
diff --git a/posix/tst-libc-message.c b/posix/tst-libc-message.c
new file mode 100644
index 0000000..b85195e
--- /dev/null
+++ b/posix/tst-libc-message.c
@@ -0,0 +1,48 @@
+/* Internal test to verify __libc_fatal.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <stdio.h>
+
+#include <support/check.h>
+#include <support/capture_subprocess.h>
+
+static _Noreturn void
+run_libc_message (void *closure)
+{
+ /* We only support 4 arguments. Call with 5 to trigger failure. */
+ __libc_message_impl ("%s %s %s %s %s\n", "1", "2", "3", "4", "5");
+ __builtin_unreachable ();
+}
+
+static int
+do_test (void)
+{
+ struct support_capture_subprocess result
+ = support_capture_subprocess (run_libc_message, NULL);
+ support_capture_subprocess_check (&result, "libc_message", -SIGABRT,
+ sc_allow_stderr);
+
+ TEST_COMPARE_STRING (result.err.buffer, IOVEC_MAX_ERR_MSG);
+
+ support_capture_subprocess_free (&result);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/resolv/inet_ntop.c b/resolv/inet_ntop.c
index acf5f3cb..0fdef32 100644
--- a/resolv/inet_ntop.c
+++ b/resolv/inet_ntop.c
@@ -1,186 +1,210 @@
-/*
- * Copyright (c) 1996-1999 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
+/* Convert IPv4/IPv6 addresses from binary to text form.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
#include <arpa/inet.h>
#include <arpa/nameser.h>
-
#include <errno.h>
-#include <stdio.h>
#include <string.h>
+#include <_itoa.h>
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/*
- * WARNING: Don't even consider trying to compile this on a system where
- * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
- */
-
-static const char *inet_ntop4 (const u_char *src, char *dst, socklen_t size);
-static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size);
-
-/* char *
- * __inet_ntop(af, src, dst, size)
- * convert a network format address to presentation format.
- * return:
- * pointer to presentation format address (`dst'), or NULL (see errno).
- * author:
- * Paul Vixie, 1996.
- */
-const char *
-__inet_ntop (int af, const void *src, char *dst, socklen_t size)
+static inline char *
+put_uint8 (uint8_t word, char *tp)
{
- switch (af) {
- case AF_INET:
- return (inet_ntop4(src, dst, size));
- case AF_INET6:
- return (inet_ntop6(src, dst, size));
- default:
- __set_errno (EAFNOSUPPORT);
- return (NULL);
+ int s = 1;
+ if (word >= 10)
+ {
+ if (word >= 100)
+ {
+ tp[2] = '0' + word % 10;
+ word /= 10;
+ s += 1;
}
- /* NOTREACHED */
+
+ tp[1] = '0' + word % 10;
+ word /= 10;
+ s += 1;
+ }
+ *tp = '0' + word;
+ return tp + s;
}
-libc_hidden_def (__inet_ntop)
-weak_alias (__inet_ntop, inet_ntop)
-/* const char *
- * inet_ntop4(src, dst, size)
- * format an IPv4 address
- * return:
- * `dst' (as a const)
- * notes:
- * (1) uses no statics
- * (2) takes a u_char* not an in_addr as input
- * author:
- * Paul Vixie, 1996.
- */
-static const char *
-inet_ntop4 (const u_char *src, char *dst, socklen_t size)
+static inline char *
+put_uint16 (uint16_t word, char *tp)
{
- static const char fmt[] = "%u.%u.%u.%u";
- char tmp[sizeof "255.255.255.255"];
+ if (word >= 0x1000)
+ *tp++ = _itoa_lower_digits[(word >> 12) & 0xf];
+ if (word >= 0x100)
+ *tp++ = _itoa_lower_digits[(word >> 8) & 0xf];
+ if (word >= 0x10)
+ *tp++ = _itoa_lower_digits[(word >> 4) & 0xf];
+ *tp++ = _itoa_lower_digits[word & 0xf];
+ return tp;
+}
- if (SPRINTF((tmp, fmt, src[0], src[1], src[2], src[3])) >= size) {
- __set_errno (ENOSPC);
- return (NULL);
- }
- return strcpy(dst, tmp);
+static __always_inline char *
+inet_ntop4_format (const uint8_t *src, char *dst)
+{
+ dst = put_uint8 (src[0], dst);
+ *(dst++) = '.';
+ dst = put_uint8 (src[1], dst);
+ *(dst++) = '.';
+ dst = put_uint8 (src[2], dst);
+ *(dst++) = '.';
+ dst = put_uint8 (src[3], dst);
+ *dst++ = '\0';
+ return dst;
}
-/* const char *
- * inet_ntop6(src, dst, size)
- * convert IPv6 binary address into presentation (printable) format
- * author:
- * Paul Vixie, 1996.
- */
-static const char *
-inet_ntop6 (const u_char *src, char *dst, socklen_t size)
+static __always_inline const char *
+inet_ntop4 (const uint8_t *src, char *dst, socklen_t size)
+{
+ if (size >= INET_ADDRSTRLEN)
+ {
+ inet_ntop4_format (src, dst);
+ return dst;
+ }
+
+ char tmp[INET_ADDRSTRLEN];
+ char *tp = inet_ntop4_format (src, tmp);
+ socklen_t tmp_s = tp - tmp;
+ if (tmp_s > size)
+ {
+ __set_errno (ENOSPC);
+ return NULL;
+ }
+ return memcpy (dst, tmp, tmp_s);
+}
+
+struct best_t
+{
+ int base;
+ int len;
+};
+
+static inline uint16_t
+in6_addr_addr16 (const struct in6_addr *src, int idx)
{
- /*
- * Note that int32_t and int16_t need only be "at least" large enough
- * to contain a value of the specified size. On some systems, like
- * Crays, there is no such thing as an integer variable with 16 bits.
- * Keep this in mind if you think this function should have been coded
- * to use pointer overlays. All the world's not a VAX.
- */
- char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp;
- struct { int base, len; } best, cur;
- u_int words[NS_IN6ADDRSZ / NS_INT16SZ];
- int i;
-
- /*
- * Preprocess:
- * Copy the input (bytewise) array into a wordwise array.
- * Find the longest run of 0x00's in src[] for :: shorthanding.
- */
- memset(words, '\0', sizeof words);
- for (i = 0; i < NS_IN6ADDRSZ; i += 2)
- words[i / 2] = (src[i] << 8) | src[i + 1];
- best.base = -1;
- cur.base = -1;
- best.len = 0;
- cur.len = 0;
- for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
- if (words[i] == 0) {
- if (cur.base == -1)
- cur.base = i, cur.len = 1;
- else
- cur.len++;
- } else {
- if (cur.base != -1) {
- if (best.base == -1 || cur.len > best.len)
- best = cur;
- cur.base = -1;
- }
- }
+ const struct { uint16_t x; } __attribute__((__packed__)) *pptr =
+ (typeof(pptr))(&src->s6_addr16[idx]);
+ return ntohs (pptr->x);
+}
+
+static __always_inline char *
+inet_ntop6_format (const struct in6_addr *src, struct best_t best, char *dst)
+{
+ char *tp = dst;
+ for (int i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++)
+ {
+ /* Are we inside the best run of 0x00's? */
+ if (best.base != -1 && i >= best.base && i < (best.base + best.len))
+ {
+ if (i == best.base)
+ *tp++ = ':';
+ continue;
}
- if (cur.base != -1) {
- if (best.base == -1 || cur.len > best.len)
- best = cur;
+ /* Are we following an initial run of 0x00s or any real hex? */
+ if (i != 0)
+ *tp++ = ':';
+ /* Is this address an encapsulated IPv4? */
+ if (i == 6 && best.base == 0
+ && (best.len == 6 || (best.len == 5
+ && in6_addr_addr16 (src, 5) == 0xffff)))
+ {
+ if (!inet_ntop4 (src->s6_addr + 12, tp,
+ INET6_ADDRSTRLEN - (tp - dst)))
+ return NULL;
+ tp += strlen (tp);
+ break;
}
- if (best.base != -1 && best.len < 2)
- best.base = -1;
-
- /*
- * Format the result.
- */
- tp = tmp;
- for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
- /* Are we inside the best run of 0x00's? */
- if (best.base != -1 && i >= best.base &&
- i < (best.base + best.len)) {
- if (i == best.base)
- *tp++ = ':';
- continue;
- }
- /* Are we following an initial run of 0x00s or any real hex? */
- if (i != 0)
- *tp++ = ':';
- /* Is this address an encapsulated IPv4? */
- if (i == 6 && best.base == 0 &&
- (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) {
- if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp)))
- return (NULL);
- tp += strlen(tp);
- break;
- }
- tp += SPRINTF((tp, "%x", words[i]));
+ tp = put_uint16 (in6_addr_addr16 (src, i), tp);
+ }
+ /* Was it a trailing run of 0x00's? */
+ if (best.base != -1 && (best.base + best.len) == (NS_IN6ADDRSZ / NS_INT16SZ))
+ *tp++ = ':';
+ *tp++ = '\0';
+
+ return tp;
+}
+
+static inline const char *
+inet_ntop6 (const struct in6_addr *src, char *dst, socklen_t size)
+{
+ struct best_t best = { -1, 0 }, cur = { -1, 0 };
+
+ /* ind the longest run of 0x00's in src[] for :: shorthanding. */
+ for (int i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++)
+ {
+ if (in6_addr_addr16 (src, i) == 0)
+ {
+ if (cur.base == -1)
+ cur.base = i, cur.len = 1;
+ else
+ cur.len++;
}
- /* Was it a trailing run of 0x00's? */
- if (best.base != -1 && (best.base + best.len) ==
- (NS_IN6ADDRSZ / NS_INT16SZ))
- *tp++ = ':';
- *tp++ = '\0';
-
- /*
- * Check for overflow, copy, and we're done.
- */
- if ((socklen_t)(tp - tmp) > size) {
- __set_errno (ENOSPC);
- return (NULL);
+ else
+ {
+ if (cur.base != -1)
+ {
+ if (best.base == -1 || cur.len > best.len)
+ best = cur;
+ cur.base = -1;
+ }
}
- return strcpy(dst, tmp);
+ }
+ if (cur.base != -1)
+ {
+ if (best.base == -1 || cur.len > best.len)
+ best = cur;
+ }
+ if (best.base != -1 && best.len < 2)
+ best.base = -1;
+
+ if (size >= INET6_ADDRSTRLEN)
+ {
+ inet_ntop6_format (src, best, dst);
+ return dst;
+ }
+
+ char tmp[INET6_ADDRSTRLEN];
+ char *tp = inet_ntop6_format (src, best, tmp);
+
+ socklen_t tmp_s = tp - tmp;
+ if (tmp_s > size)
+ {
+ __set_errno (ENOSPC);
+ return (NULL);
+ }
+ return memcpy (dst, tmp, tmp_s);
}
+
+const char *
+__inet_ntop (int af, const void *src, char *dst, socklen_t size)
+{
+ switch (af)
+ {
+ case AF_INET:
+ return (inet_ntop4 (src, dst, size));
+ case AF_INET6:
+ return (inet_ntop6 (src, dst, size));
+ default:
+ __set_errno (EAFNOSUPPORT);
+ return (NULL);
+ }
+}
+libc_hidden_def (__inet_ntop)
+weak_alias (__inet_ntop, inet_ntop)
diff --git a/stdlib/Makefile b/stdlib/Makefile
index 1c80e49..25f777e 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -666,7 +666,6 @@ $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3
$(common-objpfx)stdlib/; \
$(evaluate-test)
-$(objpfx)tst-qsort5: $(libm)
$(objpfx)tst-concurrent-exit: $(shared-thread-library)
$(objpfx)tst-concurrent-quick_exit: $(shared-thread-library)
$(objpfx)tst-getrandom2: $(shared-thread-library)
diff --git a/sysdeps/ieee754/flt-32/s_modff.c b/sysdeps/ieee754/flt-32/s_modff.c
index e6d2e4a..965136b 100644
--- a/sysdeps/ieee754/flt-32/s_modff.c
+++ b/sysdeps/ieee754/flt-32/s_modff.c
@@ -64,4 +64,6 @@ __modff (float x, float *iptr)
return asfloat (t & SIGN_MASK);
#endif
}
+#ifndef __modff
libm_alias_float (__modf, modf)
+#endif
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 994de00..c905949 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -311,9 +311,6 @@ endif
ifeq ($(subdir),htl)
tests-unsupported += tst-basic7
endif
-ifeq ($(subdir),io)
-tests-unsupported += test-lfs
-endif
ifeq ($(subdir),libio)
tests-unsupported += tst-asprintf-null
endif
diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c
index d90cc6c..6f75197 100644
--- a/sysdeps/posix/libc_fatal.c
+++ b/sysdeps/posix/libc_fatal.c
@@ -16,23 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <atomic.h>
-#include <errno.h>
-#include <fcntl.h>
+#include <assert.h>
#include <ldsodefs.h>
-#include <libc-pointer-arith.h>
-#include <paths.h>
+#include <setvmaname.h>
#include <stdarg.h>
-#include <stdbool.h>
#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <sys/mman.h>
#include <sys/uio.h>
-#include <not-cancel.h>
-#include <setvmaname.h>
+#include <unistd.h>
#ifdef FATAL_PREPARE_INCLUDE
#include FATAL_PREPARE_INCLUDE
@@ -47,6 +37,10 @@ writev_for_fatal (int fd, const struct iovec *iov, size_t niov, size_t total)
}
#endif
+/* At most a substring before each conversion specification and the
+ trailing substring (the plus one). */
+#define IOVEC_MAX (LIBC_MESSAGE_MAX_ARGS * 2 + 1)
+
/* Abort with an error message. */
void
__libc_message_impl (const char *fmt, ...)
@@ -61,7 +55,7 @@ __libc_message_impl (const char *fmt, ...)
if (fd == -1)
fd = STDERR_FILENO;
- struct iovec iov[LIBC_MESSAGE_MAX_ARGS * 2 - 1];
+ struct iovec iov[IOVEC_MAX];
int iovcnt = 0;
ssize_t total = 0;
@@ -99,6 +93,16 @@ __libc_message_impl (const char *fmt, ...)
iov[iovcnt].iov_len = len;
total += len;
iovcnt++;
+
+ if (__glibc_unlikely (iovcnt > IOVEC_MAX))
+ {
+ len = IOVEC_MAX_ERR_MSG_LEN;
+ iov[0].iov_base = (char *) IOVEC_MAX_ERR_MSG;
+ iov[0].iov_len = len;
+ total = len;
+ iovcnt = 1;
+ break;
+ }
}
va_end (ap);
diff --git a/sysdeps/powerpc/fpu/math-use-builtins-trunc.h b/sysdeps/powerpc/fpu/math-use-builtins-trunc.h
new file mode 100644
index 0000000..3e6a55d
--- /dev/null
+++ b/sysdeps/powerpc/fpu/math-use-builtins-trunc.h
@@ -0,0 +1,9 @@
+#ifdef _ARCH_PWR5X
+# define USE_TRUNCF_BUILTIN 1
+# define USE_TRUNC_BUILTIN 1
+#else
+# define USE_TRUNCF_BUILTIN 0
+# define USE_TRUNC_BUILTIN 0
+#endif
+#define USE_TRUNCL_BUILTIN 0
+#define USE_TRUNCF128_BUILTIN 0
diff --git a/sysdeps/powerpc/fpu/s_modf.c b/sysdeps/powerpc/fpu/s_modf.c
deleted file mode 100644
index 831072b..0000000
--- a/sysdeps/powerpc/fpu/s_modf.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
- This file is part of the GNU C Library
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
- generic implementation faster. Also disables for old ISAs that do not
- have ceil/floor instructions. */
-#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR5X)
-# include <sysdeps/ieee754/ldbl-opt/s_modf.c>
-#else
-# include <math.h>
-# include <math_ldbl_opt.h>
-# include <libm-alias-double.h>
-
-double
-__modf (double x, double *iptr)
-{
- if (__builtin_isinf (x))
- {
- *iptr = x;
- return copysign (0.0, x);
- }
- else if (__builtin_isnan (x))
- {
- *iptr = NAN;
- return NAN;
- }
-
- if (x >= 0.0)
- {
- *iptr = floor (x);
- return copysign (x - *iptr, x);
- }
- else
- {
- *iptr = ceil (x);
- return copysign (x - *iptr, x);
- }
-}
-# ifndef __modf
-libm_alias_double (__modf, modf)
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __modf, modfl, GLIBC_2_0);
-# endif
-# endif
-#endif
diff --git a/sysdeps/powerpc/fpu/s_modff.c b/sysdeps/powerpc/fpu/s_modff.c
deleted file mode 100644
index 79eeb7b..0000000
--- a/sysdeps/powerpc/fpu/s_modff.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
- This file is part of the GNU C Library
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
- generic implementation faster. Also disables for old ISAs that do not
- have ceil/floor instructions. */
-#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR5X)
-# include <sysdeps/ieee754/flt-32/s_modff.c>
-#else
-# include <math.h>
-# include <libm-alias-float.h>
-
-float
-__modff (float x, float *iptr)
-{
- if (__builtin_isinff (x))
- {
- *iptr = x;
- return copysignf (0.0, x);
- }
- else if (__builtin_isnanf (x))
- {
- *iptr = NAN;
- return NAN;
- }
-
- if (x >= 0.0)
- {
- *iptr = floorf (x);
- return copysignf (x - *iptr, x);
- }
- else
- {
- *iptr = ceilf (x);
- return copysignf (x - *iptr, x);
- }
-}
-# ifndef __modff
-libm_alias_float (__modf, modf)
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
index b8315c5..48f3a19 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
@@ -17,4 +17,4 @@
<https://www.gnu.org/licenses/>. */
#define __modf __modf_power5plus
-#include <sysdeps/powerpc/fpu/s_modf.c>
+#include <sysdeps/ieee754/dbl-64/s_modf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
index 69591da..15bfa0b 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
@@ -17,4 +17,4 @@
<https://www.gnu.org/licenses/>. */
#define __modff __modff_power5plus
-#include <sysdeps/powerpc/fpu/s_modff.c>
+#include <sysdeps/ieee754/flt-32/s_modff.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c
index b8315c5..48f3a19 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c
@@ -17,4 +17,4 @@
<https://www.gnu.org/licenses/>. */
#define __modf __modf_power5plus
-#include <sysdeps/powerpc/fpu/s_modf.c>
+#include <sysdeps/ieee754/dbl-64/s_modf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c
index 69591da..15bfa0b 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c
@@ -17,4 +17,4 @@
<https://www.gnu.org/licenses/>. */
#define __modff __modff_power5plus
-#include <sysdeps/powerpc/fpu/s_modff.c>
+#include <sysdeps/ieee754/flt-32/s_modff.c>
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memcmp.S b/sysdeps/powerpc/powerpc64/le/power10/memcmp.S
index 9c1a41b..734bf5f 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/memcmp.S
@@ -40,7 +40,7 @@
#ifndef MEMCMP
# define MEMCMP memcmp
#endif
- .machine power9
+ .machine power10
ENTRY_TOCLESS (MEMCMP, 4)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memcpy.S b/sysdeps/powerpc/powerpc64/le/power10/memcpy.S
index ed7a9f5..f2a503e 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/memcpy.S
@@ -26,7 +26,7 @@
/* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]);
Returns 'dst'. */
- .machine power9
+ .machine power10
ENTRY_TOCLESS (MEMCPY, 5)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memmove.S b/sysdeps/powerpc/powerpc64/le/power10/memmove.S
index 47c2ac3..4aaa1ef 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/memmove.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/memmove.S
@@ -28,7 +28,7 @@
#ifndef MEMMOVE
# define MEMMOVE memmove
#endif
- .machine power9
+ .machine power10
ENTRY_TOCLESS (MEMMOVE, 5)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memset.S b/sysdeps/powerpc/powerpc64/le/power10/memset.S
index 29d5114..f9442e7 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/memset.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/memset.S
@@ -25,7 +25,7 @@
# define MEMSET memset
#endif
- .machine power9
+ .machine power10
ENTRY_TOCLESS (MEMSET, 5)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/le/power10/strlen.S b/sysdeps/powerpc/powerpc64/le/power10/strlen.S
index 74f572c..ec644d5 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/strlen.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/strlen.S
@@ -92,7 +92,7 @@
The implementation can load bytes past a matching byte, but only
up to the next 64B boundary, so it never crosses a page. */
-.machine power9
+.machine power10
ENTRY_TOCLESS (FUNCNAME, 4)
CALL_MCOUNT MCOUNT_NARGS
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index c6b2db8..c47cbdf 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -612,6 +612,7 @@ endif
ifeq ($(subdir),io)
sysdep_routines += \
close_nocancel \
+ close_nocancel_nostatus \
fallocate \
fallocate64 \
fcntl_nocancel \
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index b721331..585dec7 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -346,6 +346,7 @@ libc {
__read_nocancel;
__pread64_nocancel;
__close_nocancel;
+ __close_nocancel_nostatus;
__sigtimedwait;
# functions used by nscd
__netlink_assert_response;
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
index 6d63c8a..1acc82d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -23,6 +23,7 @@
#include <sys/prctl.h>
#include <sys/utsname.h>
#include <dl-tunables-parse.h>
+#include <dl-symbol-redir-ifunc.h>
#define DCZID_DZP_MASK (1 << 4)
#define DCZID_BS_MASK (0xf)
diff --git a/sysdeps/unix/sysv/linux/close_nocancel_nostatus.c b/sysdeps/unix/sysv/linux/close_nocancel_nostatus.c
new file mode 100644
index 0000000..b1df5ed
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/close_nocancel_nostatus.c
@@ -0,0 +1,28 @@
+/* Linux close syscall implementation -- non-cancellable, no errno update.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+#include <not-cancel.h>
+
+void
+__close_nocancel_nostatus (int fd)
+{
+ INTERNAL_SYSCALL_CALL (close, fd);
+}
+libc_hidden_def (__close_nocancel_nostatus)
diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h
index ece3297..5ac6dd4 100644
--- a/sysdeps/unix/sysv/linux/not-cancel.h
+++ b/sysdeps/unix/sysv/linux/not-cancel.h
@@ -53,6 +53,9 @@ __typeof (__write) __write_nocancel;
/* Uncancelable close. */
__typeof (__close) __close_nocancel;
+/* Uncancellable close that does not also set errno in case of failure. */
+void __close_nocancel_nostatus (int);
+
/* Uncancelable fcntl. */
int __fcntl64_nocancel (int, int, ...);
@@ -65,17 +68,10 @@ hidden_proto (__read_nocancel)
hidden_proto (__pread64_nocancel)
hidden_proto (__write_nocancel)
hidden_proto (__close_nocancel)
+hidden_proto (__close_nocancel_nostatus)
hidden_proto (__fcntl64_nocancel)
#endif
-/* Non cancellable close syscall that does not also set errno in case of
- failure. */
-static inline void
-__close_nocancel_nostatus (int fd)
-{
- __close_nocancel (fd);
-}
-
/* Non cancellable writev syscall that does not also set errno in case of
failure. */
static inline void
diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h
index ee015df..05e0e05 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysdep.h
+++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h
@@ -145,11 +145,12 @@
# define HAVE_CLOCK_GETRES64_VSYSCALL "__vdso_clock_getres"
# define HAVE_CLOCK_GETTIME64_VSYSCALL "__vdso_clock_gettime"
# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+# define HAVE_GETRANDOM_VSYSCALL "__vdso_getrandom"
# else
# define VDSO_NAME "LINUX_5.4"
# define VDSO_HASH 61765876
-/* RV32 does not support the gettime VDSO syscalls. */
+/* RV32 does not support the gettime and getrandom VDSO syscalls. */
# endif
# define HAVE_CLONE3_WRAPPER 1