* Arjen Markus <
arjen.m...@gmail.com>
| Is there any reference to Tcl in the executable because of linking the
| program that way? I did not see any when I tried it on Windows. That
| may be the cause of the difference.
Without tcl:
% g++ -o t t.cxx
% ldd ./t
linux-vdso.so.1 (0x00007fff51de9000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f26660f3000)
libm.so.6 => /lib64/libm.so.6 (0x00007f2665df6000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2665bdf000)
libc.so.6 => /lib64/libc.so.6 (0x00007f266583e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f266647c000)
With TCL:
% g++ -o t t.cxx -l tcl8.6
% ldd t
linux-vdso.so.1 (0x00007ffc4724e000)
libtcl8.6.so => /usr/lib64/
libtcl8.6.so (0x00007fd2d71b0000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fd2d6e27000)
libm.so.6 => /lib64/libm.so.6 (0x00007fd2d6b2a000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd2d6913000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd2d6572000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd2d636e000)
libz.so.1 => /lib64/libz.so.1 (0x00007fd2d6158000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd2d5f3b000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd2d7562000)
The difference seems to be -lz -ldl -lpthread -ltcl8.6, but neither of
the first three libs triggers the error. Linking against libz, libdl or
libpthread, either alone or in combinations does not trigger the error.
Only when linked against libtcl, the error occurs.
The nm output is identical apart from the offsets, so it is likely the
shared libs init code that triggers the behaviour.
% nm t-no-tcl
U acosh@@GLIBC_2.2.5
0000000000601090 B __bss_start
00000000006011b0 b completed.6385
U __cxa_atexit@@GLIBC_2.2.5
0000000000601080 D __data_start
0000000000601080 W data_start
0000000000400950 t deregister_tm_clones
00000000004009c0 t __do_global_dtors_aux
0000000000600dd8 t __do_global_dtors_aux_fini_array_entry
0000000000601088 D __dso_handle
0000000000600de8 d _DYNAMIC
0000000000601090 D _edata
00000000006011b8 B _end
U __errno_location@@GLIBC_2.2.5
U feclearexcept@@GLIBC_2.2.5
U fetestexcept@@GLIBC_2.2.5
0000000000400bb4 T _fini
00000000004009e0 t frame_dummy
0000000000600dc8 t __frame_dummy_init_array_entry
0000000000400d84 r __FRAME_END__
0000000000601000 d _GLOBAL_OFFSET_TABLE_
0000000000400b28 t _GLOBAL__sub_I_main
w __gmon_start__
0000000000400be8 r __GNU_EH_FRAME_HDR
0000000000400808 T _init
0000000000600dd8 t __init_array_end
0000000000600dc8 t __init_array_start
0000000000400bc0 R _IO_stdin_used
0000000000600de0 d __JCR_END__
0000000000600de0 d __JCR_LIST__
0000000000400bb0 T __libc_csu_fini
0000000000400b40 T __libc_csu_init
U __libc_start_main@@GLIBC_2.2.5
0000000000400a0d T main
0000000000400980 t register_tm_clones
0000000000400920 T _start
0000000000601090 D __TMC_END__
0000000000400aeb t _Z41__static_initialization_and_destruction_0ii
U _ZNSolsEd@@GLIBCXX_3.4
U _ZNSolsEi@@GLIBCXX_3.4
U _ZNSolsEPFRSoS_E@@GLIBCXX_3.4
U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
00000000006010a0 B _ZSt4cout@@GLIBCXX_3.4
U _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
00000000006011b1 b _ZStL8__ioinit
U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCXX_3.4
% nm t-with-tcl
U acosh@@GLIBC_2.2.5
0000000000602090 B __bss_start
00000000006021b0 b completed.6385
U __cxa_atexit@@GLIBC_2.2.5
0000000000602080 D __data_start
0000000000602080 W data_start
0000000000400a60 t deregister_tm_clones
0000000000400ad0 t __do_global_dtors_aux
0000000000601dc8 t __do_global_dtors_aux_fini_array_entry
0000000000602088 D __dso_handle
0000000000601dd8 d _DYNAMIC
0000000000602090 D _edata
00000000006021b8 B _end
U __errno_location@@GLIBC_2.2.5
U feclearexcept@@GLIBC_2.2.5
U fetestexcept@@GLIBC_2.2.5
0000000000400cc4 T _fini
0000000000400af0 t frame_dummy
0000000000601db8 t __frame_dummy_init_array_entry
0000000000400e94 r __FRAME_END__
0000000000602000 d _GLOBAL_OFFSET_TABLE_
0000000000400c38 t _GLOBAL__sub_I_main
w __gmon_start__
0000000000400cf8 r __GNU_EH_FRAME_HDR
0000000000400918 T _init
0000000000601dc8 t __init_array_end
0000000000601db8 t __init_array_start
0000000000400cd0 R _IO_stdin_used
0000000000601dd0 d __JCR_END__
0000000000601dd0 d __JCR_LIST__
0000000000400cc0 T __libc_csu_fini
0000000000400c50 T __libc_csu_init
U __libc_start_main@@GLIBC_2.2.5
0000000000400b1d T main
0000000000400a90 t register_tm_clones
0000000000400a30 T _start
0000000000602090 D __TMC_END__
0000000000400bfb t _Z41__static_initialization_and_destruction_0ii
U _ZNSolsEd@@GLIBCXX_3.4
U _ZNSolsEi@@GLIBCXX_3.4
U _ZNSolsEPFRSoS_E@@GLIBCXX_3.4
U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
00000000006020a0 B _ZSt4cout@@GLIBCXX_3.4
U _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
00000000006021b1 b _ZStL8__ioinit
U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCXX_3.4
Strace shows the loading of /usr/lib64/
libtcl8.6.so and some additional
calls (look for set_tid_address ff):
% strace ./t-with-tcl
execve("./t", ["./t"], [/* 143 vars */]) = 0
brk(0) = 0xc4f000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=182580, ...}) = 0
mmap(NULL, 182580, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc89ae4d000
close(3) = 0
open("/usr/lib64/
libtcl8.6.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\335\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=1774976, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89ae4c000
mmap(NULL, 3873840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc89a8a8000
mprotect(0x7fc89aa4a000, 2093056, PROT_NONE) = 0
mmap(0x7fc89ac49000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a1000) = 0x7fc89ac49000
mmap(0x7fc89ac59000, 3120, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc89ac59000
close(3) = 0
open("/usr/lib64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p7\t\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1598552, ...}) = 0
mmap(NULL, 3706880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc89a51f000
mprotect(0x7fc89a69a000, 2093056, PROT_NONE) = 0
mmap(0x7fc89a899000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17a000) = 0x7fc89a899000
mmap(0x7fc89a8a5000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc89a8a5000
close(3) = 0
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260T\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1100480, ...}) = 0
mmap(NULL, 3129672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc89a222000
mprotect(0x7fc89a31d000, 2097152, PROT_NONE) = 0
mmap(0x7fc89a51d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xfb000) = 0x7fc89a51d000
close(3) = 0
open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260/\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=92552, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89ae4b000
mmap(NULL, 2188336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc89a00b000
mprotect(0x7fc89a021000, 2093056, PROT_NONE) = 0
mmap(0x7fc89a220000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7fc89a220000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\7\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1916856, ...}) = 0
mmap(NULL, 3803616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc899c6a000
mprotect(0x7fc899e02000, 2093056, PROT_NONE) = 0
mmap(0x7fc89a001000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x197000) = 0x7fc89a001000
mmap(0x7fc89a007000, 14816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc89a007000
close(3) = 0
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\r\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18712, ...}) = 0
mmap(NULL, 2109680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc899a66000
mprotect(0x7fc899a68000, 2097152, PROT_NONE) = 0
mmap(0x7fc899c68000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fc899c68000
close(3) = 0
open("/lib64/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P#\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=88216, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89ae4a000
mmap(NULL, 2183304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc899850000
mprotect(0x7fc899865000, 2093056, PROT_NONE) = 0
mmap(0x7fc899a64000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7fc899a64000
close(3) = 0
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320r\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=135952, ...}) = 0
mmap(NULL, 2213008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc899633000
mprotect(0x7fc89964b000, 2093056, PROT_NONE) = 0
mmap(0x7fc89984a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7fc89984a000
mmap(0x7fc89984c000, 13456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc89984c000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89ae49000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89ae48000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89ae46000
arch_prctl(ARCH_SET_FS, 0x7fc89ae46740) = 0
mprotect(0x7fc89a001000, 16384, PROT_READ) = 0
mprotect(0x7fc89984a000, 4096, PROT_READ) = 0
mprotect(0x7fc899a64000, 4096, PROT_READ) = 0
mprotect(0x7fc899c68000, 4096, PROT_READ) = 0
mprotect(0x7fc89a220000, 4096, PROT_READ) = 0
mprotect(0x7fc89a51d000, 4096, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89ae45000
mprotect(0x7fc89a899000, 40960, PROT_READ) = 0
mprotect(0x7fc89ac49000, 57344, PROT_READ) = 0
mprotect(0x601000, 4096, PROT_READ) = 0
mprotect(0x7fc89ae7a000, 4096, PROT_READ) = 0
munmap(0x7fc89ae4d000, 182580) = 0
set_tid_address(0x7fc89ae46a10) = 32025
set_robust_list(0x7fc89ae46a20, 24) = 0
rt_sigaction(SIGRTMIN, {0x7fc899639d60, [], SA_RESTORER|SA_SIGINFO, 0x7fc899643b20}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7fc899639df0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fc899643b20}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8720000, rlim_max=RLIM64_INFINITY}) = 0
brk(0) = 0xc4f000
brk(0xc81000) = 0xc81000
futex(0x7fc89a8a605c, FUTEX_WAKE_PRIVATE,
2147483647) = 0
futex(0x7fc89a8a6068, FUTEX_WAKE_PRIVATE,
2147483647) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89ae79000
write(1, "acosh(.4)=-nan\n", 15acosh(.4)=-nan
) = 15
write(1, "fetestexcept()=1\n", 17fetestexcept()=1
) = 17
write(1, "errno=0\n", 8errno=0
) = 8
exit_group(0) = ?
+++ exited with 0 +++
% strace ./t-no-tcl
execve("./t-no-tcl", ["./t-no-tcl"], [/* 143 vars */]) = 0
brk(0) = 0x1d12000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=182580, ...}) = 0
mmap(NULL, 182580, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fbaa9b21000
close(3) = 0
open("/usr/lib64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p7\t\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1598552, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbaa9b20000
mmap(NULL, 3706880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbaa95a5000
mprotect(0x7fbaa9720000, 2093056, PROT_NONE) = 0
mmap(0x7fbaa991f000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17a000) = 0x7fbaa991f000
mmap(0x7fbaa992b000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fbaa992b000
close(3) = 0
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260T\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1100480, ...}) = 0
mmap(NULL, 3129672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbaa92a8000
mprotect(0x7fbaa93a3000, 2097152, PROT_NONE) = 0
mmap(0x7fbaa95a3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xfb000) = 0x7fbaa95a3000
close(3) = 0
open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260/\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=92552, ...}) = 0
mmap(NULL, 2188336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbaa9091000
mprotect(0x7fbaa90a7000, 2093056, PROT_NONE) = 0
mmap(0x7fbaa92a6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7fbaa92a6000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\7\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1916856, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbaa9b1f000
mmap(NULL, 3803616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbaa8cf0000
mprotect(0x7fbaa8e88000, 2093056, PROT_NONE) = 0
mmap(0x7fbaa9087000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x197000) = 0x7fbaa9087000
mmap(0x7fbaa908d000, 14816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fbaa908d000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbaa9b1e000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbaa9b1c000
arch_prctl(ARCH_SET_FS, 0x7fbaa9b1c740) = 0
mprotect(0x7fbaa9087000, 16384, PROT_READ) = 0
mprotect(0x7fbaa92a6000, 4096, PROT_READ) = 0
mprotect(0x7fbaa95a3000, 4096, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbaa9b1b000
mprotect(0x7fbaa991f000, 40960, PROT_READ) = 0
mprotect(0x600000, 4096, PROT_READ) = 0
mprotect(0x7fbaa9b4e000, 4096, PROT_READ) = 0
munmap(0x7fbaa9b21000, 182580) = 0
brk(0) = 0x1d12000
brk(0x1d44000) = 0x1d44000
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbaa9b4d000
write(1, "acosh(.4)=-nan\n", 15acosh(.4)=-nan
) = 15
write(1, "fetestexcept()=1\n", 17fetestexcept()=1
) = 17
write(1, "errno=33\n", 9errno=33
) = 9
exit_group(0) = ?
+++ exited with 0 +++
HTH
R'