Ah, one more thing, ldd says not a dynamic executable
, so I guess my cling is statically compiled.
Correction: I was looking at the distro generated wrapper script for the cling binary, it is a dynamic executable, and the objdump output:
/nix/store/f2klcja64zjcfa19354lbwd5r3g914qb-cling-unstable-2018-11-20/bin/.cling-wrapped: file format elf64-x86-64
/nix/store/f2klcja64zjcfa19354lbwd5r3g914qb-cling-unstable-2018-11-20/bin/.cling-wrapped
architecture: i386:x86-64, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000000997fd0
Program Header:
PHDR off 0x0000000000000040 vaddr 0x0000000000400040 paddr 0x0000000000400040 align 2**3
filesz 0x00000000000002a0 memsz 0x00000000000002a0 flags r--
INTERP off 0x00000000000002e0 vaddr 0x00000000004002e0 paddr 0x00000000004002e0 align 2**0
filesz 0x0000000000000050 memsz 0x0000000000000050 flags r--
LOAD off 0x0000000000000000 vaddr 0x0000000000400000 paddr 0x0000000000400000 align 2**12
filesz 0x00000000004de108 memsz 0x00000000004de108 flags r--
LOAD off 0x00000000004df000 vaddr 0x00000000008df000 paddr 0x00000000008df000 align 2**12
filesz 0x0000000003321119 memsz 0x0000000003321119 flags r-x
LOAD off 0x0000000003801000 vaddr 0x0000000003c01000 paddr 0x0000000003c01000 align 2**12
filesz 0x0000000000f9a748 memsz 0x0000000000f9a748 flags r--
LOAD off 0x000000000479be58 vaddr 0x0000000004b9ce58 paddr 0x0000000004b9ce58 align 2**12
filesz 0x000000000048d180 memsz 0x00000000004da640 flags rw-
DYNAMIC off 0x0000000004bb5d58 vaddr 0x0000000004fb6d58 paddr 0x0000000004fb6d58 align 2**3
filesz 0x0000000000000280 memsz 0x0000000000000280 flags rw-
NOTE off 0x0000000000000330 vaddr 0x0000000000400330 paddr 0x0000000000400330 align 2**2
filesz 0x0000000000000020 memsz 0x0000000000000020 flags r--
TLS off 0x000000000479be58 vaddr 0x0000000004b9ce58 paddr 0x0000000004b9ce58 align 2**3
filesz 0x0000000000000000 memsz 0x0000000000000050 flags r--
EH_FRAME off 0x000000000428bff0 vaddr 0x000000000468bff0 paddr 0x000000000468bff0 align 2**2
filesz 0x00000000000970cc memsz 0x00000000000970cc flags r--
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
RELRO off 0x000000000479be58 vaddr 0x0000000004b9ce58 paddr 0x0000000004b9ce58 align 2**0
filesz 0x000000000041b1a8 memsz 0x000000000041b1a8 flags r--
Dynamic Section:
NEEDED libpthread.so.0
NEEDED librt.so.1
NEEDED libdl.so.2
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
NEEDED ld-linux-x86-64.so.2
RUNPATH $ORIGIN/../lib:/nix/store/avr2x43njlq4kyb1a9zgrh6fih5fq4si-glibc-2.27/lib:/nix/store/dmgpvd9nl7qa0ydzlqxvdhmxgmq1d1il-gcc-7.4.0-lib/lib
INIT 0x00000000008df000
FINI 0x0000000003c00110
INIT_ARRAY 0x0000000004b9ce58
INIT_ARRAYSZ 0x0000000000000b40
FINI_ARRAY 0x0000000004b9d998
FINI_ARRAYSZ 0x0000000000000008
HASH 0x0000000000400350
GNU_HASH 0x00000000004364a8
STRTAB 0x0000000000576928
SYMTAB 0x0000000000473fb0
STRSZ 0x000000000032e7e2
SYMENT 0x0000000000000018
DEBUG 0x0000000000000000
PLTGOT 0x0000000004fb6fd8
PLTRELSZ 0x0000000000001fc8
PLTREL 0x0000000000000007
JMPREL 0x00000000008dc140
RELA 0x00000000008bac18
RELASZ 0x0000000000021528
RELAENT 0x0000000000000018
FLAGS 0x0000000000000008
FLAGS_1 0x0000000000000001
VERNEED 0x00000000008ba9d8
VERNEEDNUM 0x0000000000000007
VERSYM 0x00000000008a510a
Version References:
required from ld-linux-x86-64.so.2:
0x0d696913 0x00 23 GLIBC_2.3
required from libm.so.6:
0x09691a75 0x00 12 GLIBC_2.2.5
required from libc.so.6:
0x06969195 0x00 24 GLIBC_2.15
0x06969191 0x00 18 GLIBC_2.11
0x0d696914 0x00 17 GLIBC_2.4
0x09691974 0x00 16 GLIBC_2.3.4
0x0d696916 0x00 15 GLIBC_2.6
0x0d696913 0x00 14 GLIBC_2.3
0x06969194 0x00 10 GLIBC_2.14
0x09691a75 0x00 06 GLIBC_2.2.5
required from libpthread.so.0:
0x09691a75 0x00 05 GLIBC_2.2.5
required from libgcc_s.so.1:
0x0b792653 0x00 30 GCC_3.3
0x0b792654 0x00 25 GCC_3.4
0x0b792650 0x00 04 GCC_3.0
required from libstdc++.so.6:
0x0297f864 0x00 29 GLIBCXX_3.4.14
0x0297f867 0x00 28 GLIBCXX_3.4.17
0x0297f868 0x00 27 GLIBCXX_3.4.18
0x0297f869 0x00 26 GLIBCXX_3.4.19
0x0bafd175 0x00 22 CXXABI_1.3.5
0x0bafd173 0x00 21 CXXABI_1.3.3
0x0297f872 0x00 20 GLIBCXX_3.4.22
0x02297f89 0x00 19 GLIBCXX_3.4.9
0x0297f865 0x00 13 GLIBCXX_3.4.15
0x0297f861 0x00 11 GLIBCXX_3.4.11
0x056bafd3 0x00 09 CXXABI_1.3
0x0297f870 0x00 08 GLIBCXX_3.4.20
0x08922974 0x00 07 GLIBCXX_3.4
0x0297f871 0x00 03 GLIBCXX_3.4.21
required from libdl.so.2:
0x09691a75 0x00 02 GLIBC_2.2.5
Sections:
Idx Name Size VMA LMA File off Algn
0 .interp 00000050 00000000004002e0 00000000004002e0 000002e0 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .note.ABI-tag 00000020 0000000000400330 0000000000400330 00000330 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .hash 00036158 0000000000400350 0000000000400350 00000350 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .gnu.hash 0003db04 00000000004364a8 00000000004364a8 000364a8 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .dynsym 00102978 0000000000473fb0 0000000000473fb0 00073fb0 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .dynstr 0032e7e2 0000000000576928 0000000000576928 00176928 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .gnu.version 000158ca 00000000008a510a 00000000008a510a 004a510a 2**1
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .gnu.version_r 00000240 00000000008ba9d8 00000000008ba9d8 004ba9d8 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
8 .rela.dyn 00021528 00000000008bac18 00000000008bac18 004bac18 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
9 .rela.plt 00001fc8 00000000008dc140 00000000008dc140 004dc140 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
10 .init 00000017 00000000008df000 00000000008df000 004df000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
11 .plt 00001540 00000000008df020 00000000008df020 004df020 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
12 .plt.got 00000028 00000000008e0560 00000000008e0560 004e0560 2**3
CONTENTS, ALLOC, LOAD, READONLY, CODE
13 .text 0331fb7f 00000000008e0590 00000000008e0590 004e0590 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
14 .fini 00000009 0000000003c00110 0000000003c00110 03800110 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
15 .rodata 00a8aff0 0000000003c01000 0000000003c01000 03801000 2**5
CONTENTS, ALLOC, LOAD, READONLY, DATA
16 .eh_frame_hdr 000970cc 000000000468bff0 000000000468bff0 0428bff0 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
17 .eh_frame 00478594 00000000047230c0 00000000047230c0 043230c0 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
18 .gcc_except_table 000000f4 0000000004b9b654 0000000004b9b654 0479b654 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
19 .tbss 00000050 0000000004b9ce58 0000000004b9ce58 0479be58 2**3
ALLOC, THREAD_LOCAL
20 .init_array 00000b40 0000000004b9ce58 0000000004b9ce58 0479be58 2**3
CONTENTS, ALLOC, LOAD, DATA
21 .fini_array 00000008 0000000004b9d998 0000000004b9d998 0479c998 2**3
CONTENTS, ALLOC, LOAD, DATA
22 .data.rel.ro 004193b8 0000000004b9d9a0 0000000004b9d9a0 0479c9a0 2**5
CONTENTS, ALLOC, LOAD, DATA
23 .dynamic 00000280 0000000004fb6d58 0000000004fb6d58 04bb5d58 2**3
CONTENTS, ALLOC, LOAD, DATA
24 .got 00001028 0000000004fb6fd8 0000000004fb6fd8 04bb5fd8 2**3
CONTENTS, ALLOC, LOAD, DATA
25 .data 00071fd8 0000000004fb8000 0000000004fb8000 04bb7000 2**5
CONTENTS, ALLOC, LOAD, DATA
26 .bss 0004d4b8 0000000005029fe0 0000000005029fe0 04c28fd8 2**5
ALLOC
27 .comment 00000022 0000000000000000 0000000000000000 04c28fd8 2**0
CONTENTS, READONLY
The wrapper script just contains:
#! /nix/store/x6b81sfmbmkmcyqp2rmk6jgsmzvyrjj0-bash-4.4-p23/bin/bash -e
exec -a "$0" "/nix/store/f2klcja64zjcfa19354lbwd5r3g914qb-cling-unstable-2018-11-20/bin/.cling-wrapped" -idirafter /nix/store/hhvw7iw81jyzi0q9h15csq1a8db66m4d-glibc-2.27-dev/include "${extraFlagsArray[@]}" "$@"