Dear Maintainer,
just tried to collect some more information.
I could reproduce the issue inside a qemu amd64 VM,
running current Buster.
Not every attempt resulted in a crash.
Indeed "file" seems to report just the first 80
character of the command line.
Like gdb does too when it opens a core file.
The full command line is shown by "coredumpctl gdb"
in my case, as I have installed systemd-coredump.
The actual crash looks like we expect there 320 entries in
the array syms, but that is now pointing to 0x0.
(gdb) print *symtab
$12 = {nsyms = 320, aux = 0x7f1370010a80, syms = 0x0, id =
5375926499655753679}
See more details in attached file.
Kind regards,
Bernhard
# coredumpctl gdb 20585
PID: 20585 (ld.gold)
UID: 1000 (benutzer)
GID: 1000 (benutzer)
Signal: 11 (SEGV)
Timestamp: Fri 2019-03-22 21:29:24 CET (2min 24s ago)
Command Line: /usr/bin/ld.gold -plugin
/usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so
-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
-plugin-opt=-fresolution=/tmp/ccfAic5u.res -plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id
--eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker
/lib64/ld-linux-x86-64.so.2 -pie -o ../apt-cacher-ng
/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o
/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crti.o
/usr/lib/gcc/x86_64-linux-gnu/8/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/8
-L/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu
-L/usr/lib/gcc/x86_64-linux-gnu/8/../../../../lib -L/lib/x86_64-linux-gnu
-L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib
-L/usr/lib/gcc/x86_64-linux-gnu/8/../../.. --as-needed -O1 --discard-all
--no-undefined --build-id=sha1 --threads --gc-sections
CMakeFiles/apt-cacher-ng.dir/apt-cacher.cc.o ../libsupacng.so -latomic -levent
-lwrap -lz -lbz2 -llzma -lssl -lcrypto -lsystemd -lpthread -lstdc++ -lm -lgcc_s
-lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/8/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crtn.o
(gdb) bt
#0 gold::Pluginobj::get_symbol_resolution_info (this=0x7f1370001040,
symtab=0x7ffe8567e0a0, nsyms=<optimized out>, syms=<optimized out>,
version=<optimized out>) at ../../gold/plugin.cc:1279
#1 0x00007f13ed5be0cf in write_resolution () at
../../src/lto-plugin/lto-plugin.c:490
#2 all_symbols_read_handler () at ../../src/lto-plugin/lto-plugin.c:657
#3 0x000055794b4cdbaf in gold::Plugin::all_symbols_read (this=<optimized out>)
at ../../gold/plugin.cc:403
#4 gold::Plugin_manager::all_symbols_read (task=<optimized out>,
input_objects=<optimized out>, symtab=<optimized out>, dirpath=<optimized out>,
mapfile=<optimized out>, last_blocker=<optimized out>,
workqueue=0x7ffe8567dd70, this=0x55794be1e760) at ../../gold/plugin.cc:842
#5 gold::Plugin_manager::all_symbols_read (this=0x55794be1e760,
workqueue=0x7ffe8567dd70, task=<optimized out>, input_objects=<optimized out>,
symtab=<optimized out>, dirpath=<optimized out>, mapfile=<optimized out>,
last_blocker=<optimized out>) at ../../gold/plugin.cc:819
#6 0x000055794b4cdcfc in gold::Plugin_hook::run (this=0x55794be54680,
workqueue=0x7ffe8567dd70) at ../../gold/options.h:1635
#7 0x000055794b50f338 in gold::Workqueue::find_and_run_task
(this=0x7ffe8567dd70, thread_number=7) at ../../gold/token.h:290
#8 0x000055794b50f55a in gold::Workqueue::process (this=0x7ffe8567dd70,
thread_number=7) at ../../gold/workqueue.cc:495
#9 0x000055794b50f5d3 in gold::Workqueue_threader_threadpool::process
(thread_number=<optimized out>, this=<optimized out>) at
../../gold/workqueue-internal.h:92
#10 gold::Workqueue_thread::thread_body (arg=0x55794be51c80) at
../../gold/workqueue-threads.cc:117
#11 0x00007f13edae5fa3 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#12 0x00007f13eda1682f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
# Buster amd64 qemu VM 2019-03-22
apt update
apt dist-upgrade
apt install dpkg-dev devscripts systemd-coredump gdb
binutils-x86-64-linux-gnu-dbg gcc-8-dbgsym lz4
apt build-dep apt-cacher-ng
apt build-dep gcc-8
apt install libevent-dev
mkdir /tmp/source/binutils/orig -p
cd /tmp/source/binutils/orig
apt source binutils-x86-64-linux-gnu
cd
mkdir /tmp/source/gcc-8/orig -p
cd /tmp/source/gcc-8/orig
apt source gcc-8
cd gcc-8-8.3.0
# ctrl+C when configure begins
cd
mkdir /tmp/924421-test
cd /tmp/924421-test
#
https://salsa.debian.org/blade/apt-cacher-ng/commit/d204340833d88424792a42013e310f21aecef39b
# Branch: upstream/sid
# git clone --depth 2 https://salsa.debian.org/blade/apt-cacher-ng.git --branch
upstream/sid --single-branch
# is just 2.5MB
git clone https://salsa.debian.org/blade/apt-cacher-ng.git
cd apt-cacher-ng
git checkout upstream/sid
git log --oneline | head -n1
# d204340 Fix detection of LTO
cmake .
# (that should include: "-- LTO use: ON" and "Performing Test LD_MULTITHREADED
- Success")
make -j$(nproc)
###############
benutzer@debian:/tmp/924421-test$ git clone
https://salsa.debian.org/blade/apt-cacher-ng.git
Klone nach 'apt-cacher-ng' ...
remote: Enumerating objects: 6010, done.
remote: Counting objects: 100% (6010/6010), done.
remote: Compressing objects: 100% (2085/2085), done.
remote: Total 6010 (delta 4333), reused 5389 (delta 3720)
Empfange Objekte: 100% (6010/6010), 2.47 MiB | 2.40 MiB/s, Fertig.
Löse Unterschiede auf: 100% (4333/4333), Fertig.
benutzer@debian:/tmp/924421-test$ cd apt-cacher-ng
benutzer@debian:/tmp/924421-test/apt-cacher-ng$ git checkout upstream/sid
Branch 'upstream/sid' folgt nun Remote-Branch 'upstream/sid' von 'origin'.
Zu neuem Branch 'upstream/sid' gewechselt
benutzer@debian:/tmp/924421-test/apt-cacher-ng$ git log --oneline | head -n1
d204340 Fix detection of LTO
benutzer@debian:/tmp/924421-test/apt-cacher-ng$ cmake .
-- The CXX compiler identification is GNU 8.3.0
-- The C compiler identification is GNU 8.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29")
-- Looking for include files sys/param.h, sys/mount.h
-- Looking for include files sys/param.h, sys/mount.h - found
-- Looking for include file sys/vfs.h
-- Looking for include file sys/vfs.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of int
-- Check size of int - done
-- Check size of long
-- Check size of long - done
-- Check if the system is big endian
-- Searching 16 bit integer
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Performing Test COPT_Wall
-- Performing Test COPT_Wall - Success
-- Performing Test COPT_Wextra
-- Performing Test COPT_Wextra - Success
-- Performing Test COPT_Wnounusedparameter
-- Performing Test COPT_Wnounusedparameter - Success
-- Performing Test COPT_fvisibilityhidden
-- Performing Test COPT_fvisibilityhidden - Success
-- Performing Test CXX_VIHI
-- Performing Test CXX_VIHI - Success
-- Performing Test LD_Wlasneeded
-- Performing Test LD_Wlasneeded - Success
-- Performing Test LD_WlO1
-- Performing Test LD_WlO1 - Success
-- Performing Test LD_Wldiscardall
-- Performing Test LD_Wldiscardall - Success
-- Performing Test LD_Wlnoundefined
-- Performing Test LD_Wlnoundefined - Success
-- Performing Test LD_Wlbuildidsha1
-- Performing Test LD_Wlbuildidsha1 - Success
-- Performing Test LD_Wlfuseldgold
-- Performing Test LD_Wlfuseldgold - Success
-- Performing Test LD_MULTITHREADED
-- Performing Test LD_MULTITHREADED - Success
-- Performing Test GC_SECTIONS
-- Performing Test GC_SECTIONS - Success
-- Performing Test HAS_LTO
-- Performing Test HAS_LTO - Success
-- LTO use: ON
-- Performing Test HAVE_LIBWRAP
-- Performing Test HAVE_LIBWRAP - Success
-- Performing Test LD_ATOMIC
-- Performing Test LD_ATOMIC - Success
-- Performing Test HAVE_WORDEXP
-- Performing Test HAVE_WORDEXP - Success
-- Performing Test HAVE_GLOB
-- Performing Test HAVE_GLOB - Success
-- Performing Test HAVE_FADVISE
-- Performing Test HAVE_FADVISE - Success
-- Performing Test HAVE_MADVISE
-- Performing Test HAVE_MADVISE - Success
-- Performing Test HAVE_LINUX_FALLOCATE
-- Performing Test HAVE_LINUX_FALLOCATE - Success
-- Performing Test HAVE_LINUX_SENDFILE
-- Performing Test HAVE_LINUX_SENDFILE - Success
-- Performing Test HAVE_LINUX_EVENTFD
-- Performing Test HAVE_LINUX_EVENTFD - Success
-- Performing Test HAVE_PREAD
-- Performing Test HAVE_PREAD - Success
-- Performing Test HAVE_DAEMON
-- Performing Test HAVE_DAEMON - Success
-- Checking for module 'libsystemd>=209'
-- Found libsystemd, version 241
-- Performing Test HAVE_MEMORY_SPTR
-- Performing Test HAVE_MEMORY_SPTR - Success
-- Performing Test HAVE_DLOPEN
-- Performing Test HAVE_DLOPEN - Success
-- Found BZip2: /usr/lib/x86_64-linux-gnu/libbz2.so (found version "1.0.6")
-- Looking for BZ2_bzCompressInit
-- Looking for BZ2_bzCompressInit - found
-- Performing Test HAVE_LZMA
-- Performing Test HAVE_LZMA - Success
-- Checking for module 'libevent'
-- Found libevent, version 2.1.8-stable
-- Checking for module 'openssl>=1.0.2'
-- Found openssl, version 1.1.1b
Build settings:
Compiler flags (common): -D_FILE_OFFSET_BITS=64 -Wall -Wextra
-Wno-unused-parameter -fvisibility=hidden -fdata-sections -ffunction-sections
-flto
Compiler flags (C++ only): -fvisibility-inlines-hidden
Compiler flags (environment):
Linker flags: -Wl,--as-needed -Wl,-O1 -Wl,--discard-all -Wl,--no-undefined
-Wl,--build-id=sha1 -Wl,-fuse-ld=gold -Wl,-fuse-ld=gold -Wl,--threads
-Wl,--gc-sections -flto
-- Checking for module 'fuse'
-- Found fuse, version 2.9.9
-- Performing Test HAVE_FUSE_25
-- Performing Test HAVE_FUSE_25 - Success
Installation settings:
PACKAGE: apt-cacher-ng
VERSION: 3.2
CMAKE_INSTALL_PREFIX: /usr/local
CMAKE_INSTALL_FULL_SYSCONFDIR: /usr/local/etc
LIBDIR: /usr/local/lib/apt-cacher-ng
AVAHIDIR: /usr/local/etc/avahi/services
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/924421-test/apt-cacher-ng
benutzer@debian:/tmp/924421-test/apt-cacher-ng$ make -j$(nproc)
Scanning dependencies of target supacng
Scanning dependencies of target in.acng
[ 2%] Building CXX object client/CMakeFiles/in.acng.dir/client.cc.o
[ 5%] Building CXX object source/CMakeFiles/supacng.dir/acbuf.cc.o
[ 8%] Building CXX object source/CMakeFiles/supacng.dir/filelocks.cc.o
[ 10%] Building CXX object source/CMakeFiles/supacng.dir/aclogger.cc.o
[ 13%] Building CXX object source/CMakeFiles/supacng.dir/dlcon.cc.o
[ 16%] Building CXX object source/CMakeFiles/supacng.dir/acfg_defaults.cc.o
[ 21%] Building CXX object source/CMakeFiles/supacng.dir/fileitem.cc.o
[ 21%] Building CXX object source/CMakeFiles/supacng.dir/acfg.cc.o
[ 27%] Building CXX object source/CMakeFiles/supacng.dir/caddrinfo.cc.o
[ 27%] Building CXX object source/CMakeFiles/supacng.dir/dirwalk.cc.o
[ 29%] Building CXX object source/CMakeFiles/supacng.dir/fileio.cc.o
[ 32%] Building CXX object source/CMakeFiles/supacng.dir/filereader.cc.o
[ 35%] Building CXX object source/CMakeFiles/supacng.dir/header.cc.o
[ 37%] Building CXX object source/CMakeFiles/supacng.dir/meta.cc.o
[ 40%] Building CXX object source/CMakeFiles/supacng.dir/cleaner.cc.o
[ 43%] Building CXX object source/CMakeFiles/supacng.dir/tcpconnect.cc.o
[ 45%] Building CXX object source/CMakeFiles/supacng.dir/job.cc.o
[ 48%] Linking CXX executable ../in.acng
[ 51%] Building CXX object source/CMakeFiles/supacng.dir/bgtask.cc.o
[ 54%] Building CXX object source/CMakeFiles/supacng.dir/cacheman.cc.o
[ 54%] Built target in.acng
[ 56%] Building CXX object source/CMakeFiles/supacng.dir/conn.cc.o
[ 59%] Building CXX object source/CMakeFiles/supacng.dir/conserver.cc.o
[ 62%] Building CXX object source/CMakeFiles/supacng.dir/expiration.cc.o
[ 64%] Building CXX object source/CMakeFiles/supacng.dir/maintenance.cc.o
[ 67%] Building CXX object source/CMakeFiles/supacng.dir/lockable.cc.o
[ 70%] Building CXX object source/CMakeFiles/supacng.dir/mirror.cc.o
[ 72%] Building CXX object source/CMakeFiles/supacng.dir/pkgimport.cc.o
[ 75%] Building CXX object source/CMakeFiles/supacng.dir/showinfo.cc.o
[ 78%] Building CXX object source/CMakeFiles/supacng.dir/evabase.cc.o
[ 81%] Building CXX object source/CMakeFiles/supacng.dir/evasocket.cc.o
[ 83%] Linking CXX shared library ../libsupacng.so
[ 83%] Built target supacng
Scanning dependencies of target apt-cacher-ng
Scanning dependencies of target acngfs
Scanning dependencies of target acngtool
[ 86%] Building CXX object source/CMakeFiles/apt-cacher-ng.dir/apt-cacher.cc.o
[ 89%] Building CXX object fs/CMakeFiles/acngfs.dir/httpfs.cc.o
[ 91%] Building CXX object source/CMakeFiles/acngtool.dir/acngtool.cc.o
[ 94%] Linking CXX executable ../apt-cacher-ng
[ 97%] Linking CXX executable ../acngfs
[ 97%] Built target acngfs
[100%] Linking CXX executable ../acngtool
collect2: fatal error: ld terminated with signal 11 [Speicherzugriffsfehler],
core dumped
compilation terminated.
make[2]: *** [source/CMakeFiles/apt-cacher-ng.dir/build.make:85: apt-cacher-ng]
Fehler 1
make[1]: *** [CMakeFiles/Makefile2:205:
source/CMakeFiles/apt-cacher-ng.dir/all] Fehler 2
make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet....
collect2: fatal error: ld terminated with signal 11 [Speicherzugriffsfehler],
core dumped
compilation terminated.
make[2]: *** [source/CMakeFiles/acngtool.dir/build.make:85: acngtool] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:279: source/CMakeFiles/acngtool.dir/all]
Fehler 2
make: *** [Makefile:130: all] Fehler 2
dmesg
[ 1025.397867] ld.gold[20592]: segfault at 10 ip 000055794b4cf4c3 sp
00007f13d55b2c20 error 4 in x86_64-linux-gnu-ld.gold[55794b3f6000+1ef000]
[ 1025.397874] Code: 0f 1f 80 00 00 00 00 41 0f b6 46 3a 89 c1 83 e1 07 0f 85
88 01 00 00 41 8b 56 18 85 d2 75 0b 41 f6 46 3b 20 0f 85 fd 01 00 00 <8b> 75 00
83 e0 07 8d 56 fe 83 fa 02 0f 87 83 01 00 00 84 c0 0f 85
[ 1026.535173] ld.gold[20685]: segfault at 10 ip 000055b7d37234c3 sp
00007fd2574e1c20 error 4 in x86_64-linux-gnu-ld.gold[55b7d364a000+1ef000]
[ 1026.535180] Code: 0f 1f 80 00 00 00 00 41 0f b6 46 3a 89 c1 83 e1 07 0f 85
88 01 00 00 41 8b 56 18 85 d2 75 0b 41 f6 46 3b 20 0f 85 fd 01 00 00 <8b> 75 00
83 e0 07 8d 56 fe 83 fa 02 0f 87 83 01 00 00 84 c0 0f 85
# coredumpctl list
TIME PID UID GID SIG COREFILE EXE
Fri 2019-03-22 21:29:39 CET 20585 1000 1000 11 present
/usr/bin/x86_64-linux-gnu-ld.gold
Fri 2019-03-22 21:29:40 CET 20669 1000 1000 11 present
/usr/bin/x86_64-linux-gnu-ld.gold
root@debian:~# dpkg -S /usr/bin/x86_64-linux-gnu-ld.gold
binutils-x86-64-linux-gnu: /usr/bin/x86_64-linux-gnu-ld.gold
root@debian:~# dpkg -l binutils-x86-64-linux-gnu
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-=========================-============-============-=================================================
ii binutils-x86-64-linux-gnu 2.31.1-15 amd64 GNU binary utilities,
for x86-64-linux-gnu target
root@debian:~# coredumpctl gdb 20585
PID: 20585 (ld.gold)
UID: 1000 (benutzer)
GID: 1000 (benutzer)
Signal: 11 (SEGV)
Timestamp: Fri 2019-03-22 21:29:24 CET (2min 24s ago)
Command Line: /usr/bin/ld.gold -plugin
/usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so
-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
-plugin-opt=-fresolution=/tmp/ccfAic5u.res -plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id
--eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker
/lib64/ld-linux-x86-64.so.2 -pie -o ../apt-cacher-ng
/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o
/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crti.o
/usr/lib/gcc/x86_64-linux-gnu/8/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/8
-L/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu
-L/usr/lib/gcc/x86_64-linux-gnu/8/../../../../lib -L/lib/x86_64-linux-gnu
-L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib
-L/usr/lib/gcc/x86_64-linux-gnu/8/../../.. --as-needed -O1 --discard-all
--no-undefined --build-id=sha1 --threads --gc-sections
CMakeFiles/apt-cacher-ng.dir/apt-cacher.cc.o ../libsupacng.so -latomic -levent
-lwrap -lz -lbz2 -llzma -lssl -lcrypto -lsystemd -lpthread -lstdc++ -lm -lgcc_s
-lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/8/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crtn.o
Executable: /usr/bin/x86_64-linux-gnu-ld.gold
Control Group: /user.slice/user-1000.slice/session-3.scope
Unit: session-3.scope
Slice: user-1000.slice
Session: 3
Owner UID: 1000 (benutzer)
Boot ID: ad23efe57a0841cb8fe392bcf6690d6c
Machine ID: 32f43b50ac8c4b21941bc0b02f8e7811
Hostname: debian
Storage:
/var/lib/systemd/coredump/core.ld\x2egold.1000.ad23efe57a0841cb8fe392bcf6690d6c.20585.1553286564000000.lz4
Message: Process 20585 (ld.gold) of user 1000 dumped core.
Core was generated by `/usr/bin/ld.gold -plugin
/usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so -plug'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000055794b4cf4c3 in ?? ()
[Current thread is 1 (Thread 0x7f13d55b3700 (LWP 20592))]
(gdb) bt
#0 0x000055794b4cf4c3 in ?? ()
#1 0x00007f13ed5be0cf in ?? () from
/usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so
#2 0x000055794b4cdbaf in ?? ()
#3 0x000055794b4cdcfc in ?? ()
#4 0x000055794b50f338 in ?? ()
#5 0x000055794b50f55a in ?? ()
#6 0x000055794b50f5d3 in ?? ()
#7 0x00007f13edae5fa3 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#8 0x00007f13eda1682f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
set width 0
set pagination off
directory /tmp/source/binutils/orig/binutils-2.31.1/debian/tests
directory /tmp/source/gcc-8/orig/gcc-8-8.3.0/src/lto-plugin
bt
bt full
Core was generated by `/usr/bin/ld.gold -plugin
/usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so -plug'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 gold::Pluginobj::get_symbol_resolution_info (this=0x7f1370001040,
symtab=0x7ffe8567e0a0, nsyms=<optimized out>, syms=<optimized out>,
version=<optimized out>)
at ../../gold/plugin.cc:1279
1279 ../../gold/plugin.cc: Datei oder Verzeichnis nicht gefunden.
[Current thread is 1 (Thread 0x7f13d55b3700 (LWP 20592))]
(gdb) set width 0
(gdb) set pagination off
(gdb) bt
#0 gold::Pluginobj::get_symbol_resolution_info (this=0x7f1370001040,
symtab=0x7ffe8567e0a0, nsyms=<optimized out>, syms=<optimized out>,
version=<optimized out>) at ../../gold/plugin.cc:1279
#1 0x00007f13ed5be0cf in ?? () from
/usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so
#2 0x000055794b4cdbaf in gold::Plugin::all_symbols_read (this=<optimized out>)
at ../../gold/plugin.cc:403
#3 gold::Plugin_manager::all_symbols_read (task=<optimized out>,
input_objects=<optimized out>, symtab=<optimized out>, dirpath=<optimized out>,
mapfile=<optimized out>, last_blocker=<optimized out>,
workqueue=0x7ffe8567dd70, this=0x55794be1e760) at ../../gold/plugin.cc:842
#4 gold::Plugin_manager::all_symbols_read (this=0x55794be1e760,
workqueue=0x7ffe8567dd70, task=<optimized out>, input_objects=<optimized out>,
symtab=<optimized out>, dirpath=<optimized out>, mapfile=<optimized out>,
last_blocker=<optimized out>) at ../../gold/plugin.cc:819
#5 0x000055794b4cdcfc in gold::Plugin_hook::run (this=0x55794be54680,
workqueue=0x7ffe8567dd70) at ../../gold/options.h:1635
#6 0x000055794b50f338 in gold::Workqueue::find_and_run_task
(this=0x7ffe8567dd70, thread_number=7) at ../../gold/token.h:290
#7 0x000055794b50f55a in gold::Workqueue::process (this=0x7ffe8567dd70,
thread_number=7) at ../../gold/workqueue.cc:495
#8 0x000055794b50f5d3 in gold::Workqueue_threader_threadpool::process
(thread_number=<optimized out>, this=<optimized out>) at
../../gold/workqueue-internal.h:92
#9 gold::Workqueue_thread::thread_body (arg=0x55794be51c80) at
../../gold/workqueue-threads.cc:117
#10 0x00007f13edae5fa3 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#11 0x00007f13eda1682f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
root@debian:~# dpkg -S /usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so
gcc-8: /usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so
root@debian:~# dpkg -l gcc-8
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==============-============-============-=================================
ii gcc-8 8.3.0-2 amd64 GNU C compiler
Core was generated by `/usr/bin/ld.gold -plugin
/usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so -plug'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 gold::Pluginobj::get_symbol_resolution_info (this=0x7f1370001040,
symtab=0x7ffe8567e0a0, nsyms=<optimized out>, syms=<optimized out>,
version=<optimized out>)
at ../../gold/plugin.cc:1279
1279 ../../gold/plugin.cc: Datei oder Verzeichnis nicht gefunden.
[Current thread is 1 (Thread 0x7f13d55b3700 (LWP 20592))]
(gdb) set width 0
(gdb) set pagination off
(gdb) directory /tmp/source/binutils/orig/binutils-2.31.1/debian/tests
Source directories searched:
/tmp/source/binutils/orig/binutils-2.31.1/debian/tests:$cdir:$cwd
(gdb) directory /tmp/source/gcc-8/orig/gcc-8-8.3.0/src/lto-plugin
Source directories searched:
/tmp/source/gcc-8/orig/gcc-8-8.3.0/src/lto-plugin:/tmp/source/binutils/orig/binutils-2.31.1/debian/tests:$cdir:$cwd
(gdb) bt
#0 gold::Pluginobj::get_symbol_resolution_info (this=0x7f1370001040,
symtab=0x7ffe8567e0a0, nsyms=<optimized out>, syms=<optimized out>,
version=<optimized out>) at ../../gold/plugin.cc:1279
#1 0x00007f13ed5be0cf in write_resolution () at
../../src/lto-plugin/lto-plugin.c:490
#2 all_symbols_read_handler () at ../../src/lto-plugin/lto-plugin.c:657
#3 0x000055794b4cdbaf in gold::Plugin::all_symbols_read (this=<optimized out>)
at ../../gold/plugin.cc:403
#4 gold::Plugin_manager::all_symbols_read (task=<optimized out>,
input_objects=<optimized out>, symtab=<optimized out>, dirpath=<optimized out>,
mapfile=<optimized out>, last_blocker=<optimized out>,
workqueue=0x7ffe8567dd70, this=0x55794be1e760) at ../../gold/plugin.cc:842
#5 gold::Plugin_manager::all_symbols_read (this=0x55794be1e760,
workqueue=0x7ffe8567dd70, task=<optimized out>, input_objects=<optimized out>,
symtab=<optimized out>, dirpath=<optimized out>, mapfile=<optimized out>,
last_blocker=<optimized out>) at ../../gold/plugin.cc:819
#6 0x000055794b4cdcfc in gold::Plugin_hook::run (this=0x55794be54680,
workqueue=0x7ffe8567dd70) at ../../gold/options.h:1635
#7 0x000055794b50f338 in gold::Workqueue::find_and_run_task
(this=0x7ffe8567dd70, thread_number=7) at ../../gold/token.h:290
#8 0x000055794b50f55a in gold::Workqueue::process (this=0x7ffe8567dd70,
thread_number=7) at ../../gold/workqueue.cc:495
#9 0x000055794b50f5d3 in gold::Workqueue_threader_threadpool::process
(thread_number=<optimized out>, this=<optimized out>) at
../../gold/workqueue-internal.h:92
#10 gold::Workqueue_thread::thread_body (arg=0x55794be51c80) at
../../gold/workqueue-threads.cc:117
#11 0x00007f13edae5fa3 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#12 0x00007f13eda1682f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) bt full
#0 gold::Pluginobj::get_symbol_resolution_info (this=0x7f1370001040,
symtab=0x7ffe8567e0a0, nsyms=<optimized out>, syms=<optimized out>,
version=<optimized out>) at ../../gold/plugin.cc:1279
isym = 0x0
lsym = 0x7f138c002510
res = 0
i = <optimized out>
ldpr_prevailing_def_ironly_exp = 9
__FUNCTION__ = "get_symbol_resolution_info"
plugins = <optimized out>
#1 0x00007f13ed5be0cf in write_resolution () at
../../src/lto-plugin/lto-plugin.c:490
info = 0x7f1370001140
symtab = 0x7f1370001150
syms = <optimized out>
i = 0
f = 0x7f1380002360
i = <optimized out>
f = <optimized out>
info = <optimized out>
symtab = <optimized out>
syms = <optimized out>
#2 all_symbols_read_handler () at ../../src/lto-plugin/lto-plugin.c:657
i = <optimized out>
num_lto_args = <optimized out>
lto_argv = 0x7f1380002320
linker_output_str = 0x0
lto_arg_ptr = 0x7f1380002320
__PRETTY_FUNCTION__ = "all_symbols_read_handler"
#3 0x000055794b4cdbaf in gold::Plugin::all_symbols_read (this=<optimized out>)
at ../../gold/plugin.cc:403
No locals.
#4 gold::Plugin_manager::all_symbols_read (task=<optimized out>,
input_objects=<optimized out>, symtab=<optimized out>, dirpath=<optimized out>,
mapfile=<optimized out>, last_blocker=<optimized out>,
workqueue=0x7ffe8567dd70, this=0x55794be1e760) at ../../gold/plugin.cc:842
layout = <optimized out>
layout = <optimized out>
next_blocker = <optimized out>
#5 gold::Plugin_manager::all_symbols_read (this=0x55794be1e760,
workqueue=0x7ffe8567dd70, task=<optimized out>, input_objects=<optimized out>,
symtab=<optimized out>, dirpath=<optimized out>, mapfile=<optimized out>,
last_blocker=<optimized out>) at ../../gold/plugin.cc:819
layout = 0x7ffe8567e360
next_blocker = <optimized out>
#6 0x000055794b4cdcfc in gold::Plugin_hook::run (this=0x55794be54680,
workqueue=0x7ffe8567dd70) at ../../gold/options.h:1635
__FUNCTION__ = "run"
start_sym = <optimized out>
#7 0x000055794b50f338 in gold::Workqueue::find_and_run_task
(this=0x7ffe8567dd70, thread_number=7) at ../../gold/token.h:290
timer = {start_time_ = {user = 0, sys = 0, wall = 0}, pass_times_ =
{{user = 0, sys = 0, wall = 0}, {user = 0, sys = 0, wall = 0}, {user = 0, sys =
0, wall = 0}}}
next = <optimized out>
t = 0x55794be54680
tl = {static max_task_count = 4, count_ = 0, tokens_ = {0x55794be54580,
0x7f1358000b80, 0x0, 0x0}}
#8 0x000055794b50f55a in gold::Workqueue::process (this=0x7ffe8567dd70,
thread_number=7) at ../../gold/workqueue.cc:495
No locals.
#9 0x000055794b50f5d3 in gold::Workqueue_threader_threadpool::process
(thread_number=<optimized out>, this=<optimized out>) at
../../gold/workqueue-internal.h:92
No locals.
#10 gold::Workqueue_thread::thread_body (arg=0x55794be51c80) at
../../gold/workqueue-threads.cc:117
pwt = 0x55794be51c80
#11 0x00007f13edae5fa3 in start_thread (arg=<optimized out>) at
pthread_create.c:486
ret = <optimized out>
pd = <optimized out>
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139723160631040,
-375947601217085712, 140731136596382, 140731136596383, 139723160631040,
140731136597760, 355774545175224048, 355651307003551472}, mask_was_saved = 0}},
priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 0}}}
not_first_call = <optimized out>
#12 0x00007f13eda1682f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
(gdb) up
#1 0x00007f13ed5be0cf in write_resolution () at
../../src/lto-plugin/lto-plugin.c:490
490 ../../src/lto-plugin/lto-plugin.c: Datei oder Verzeichnis nicht
gefunden.
(gdb) down
#0 gold::Pluginobj::get_symbol_resolution_info (this=0x7f1370001040,
symtab=0x7ffe8567e0a0, nsyms=<optimized out>, syms=<optimized out>,
version=<optimized out>) at ../../gold/plugin.cc:1279
1279 else if (isym->def == LDPK_UNDEF
(gdb) list plugin.cc:1231,1324
1231 // Get symbol resolution info.
1232
1233 ld_plugin_status
1234 Pluginobj::get_symbol_resolution_info(Symbol_table* symtab,
1235 int nsyms,
1236 ld_plugin_symbol* syms,
1237 int version) const
1238 {
1239 // For version 1 of this interface, we cannot use
1240 // LDPR_PREVAILING_DEF_IRONLY_EXP, so we return LDPR_PREVAILING_DEF
1241 // instead.
1242 const ld_plugin_symbol_resolution ldpr_prevailing_def_ironly_exp
1243 = (version > 1
1244 ? LDPR_PREVAILING_DEF_IRONLY_EXP
1245 : LDPR_PREVAILING_DEF);
1246
1247 if (nsyms > this->nsyms_)
1248 return LDPS_NO_SYMS;
1249
1250 if (static_cast<size_t>(nsyms) > this->symbols_.size())
1251 {
1252 // We never decided to include this object. We mark all symbols as
1253 // preempted.
1254 gold_assert(this->symbols_.size() == 0);
1255 for (int i = 0; i < nsyms; i++)
1256 syms[i].resolution = LDPR_PREEMPTED_REG;
1257 return version > 2 ? LDPS_NO_SYMS : LDPS_OK;
1258 }
1259
1260 Plugin_manager* plugins = parameters->options().plugins();
1261 for (int i = 0; i < nsyms; i++)
1262 {
1263 ld_plugin_symbol* isym = &syms[i];
1264 Symbol* lsym = this->symbols_[i];
1265 if (lsym->is_forwarder())
1266 lsym = symtab->resolve_forwards(lsym);
1267 ld_plugin_symbol_resolution res = LDPR_UNKNOWN;
1268
1269 if (plugins->is_defsym_def(lsym->name()))
1270 {
1271 // The symbol is redefined via defsym.
1272 res = LDPR_PREEMPTED_REG;
1273 }
1274 else if (lsym->is_undefined())
1275 {
1276 // The symbol remains undefined.
1277 res = LDPR_UNDEF;
1278 }
1279 else if (isym->def == LDPK_UNDEF
<<<<<<<<<<<<
1280 || isym->def == LDPK_WEAKUNDEF
1281 || isym->def == LDPK_COMMON)
1282 {
1283 // The original symbol was undefined or common.
1284 if (lsym->source() != Symbol::FROM_OBJECT)
1285 res = LDPR_RESOLVED_EXEC;
1286 else if (lsym->object()->pluginobj() == this)
1287 {
1288 if (is_referenced_from_outside(lsym))
1289 res = LDPR_PREVAILING_DEF;
1290 else if (is_visible_from_outside(lsym))
1291 res = ldpr_prevailing_def_ironly_exp;
1292 else
1293 res = LDPR_PREVAILING_DEF_IRONLY;
1294 }
1295 else if (lsym->object()->pluginobj() != NULL)
1296 res = LDPR_RESOLVED_IR;
1297 else if (lsym->object()->is_dynamic())
1298 res = LDPR_RESOLVED_DYN;
1299 else
1300 res = LDPR_RESOLVED_EXEC;
1301 }
1302 else
1303 {
1304 // The original symbol was a definition.
1305 if (lsym->source() != Symbol::FROM_OBJECT)
1306 res = LDPR_PREEMPTED_REG;
1307 else if (lsym->object() == static_cast<const Object*>(this))
1308 {
1309 if (is_referenced_from_outside(lsym))
1310 res = LDPR_PREVAILING_DEF;
1311 else if (is_visible_from_outside(lsym))
1312 res = ldpr_prevailing_def_ironly_exp;
1313 else
1314 res = LDPR_PREVAILING_DEF_IRONLY;
1315 }
1316 else
1317 res = (lsym->object()->pluginobj() != NULL
1318 ? LDPR_PREEMPTED_IR
1319 : LDPR_PREEMPTED_REG);
1320 }
1321 isym->resolution = res;
1322 }
1323 return LDPS_OK;
1324 }
(gdb) print isym
$1 = (ld_plugin_symbol *) 0x0
(gdb) print nsyms
$2 = <optimized out>
(gdb) print syms
$3 = <optimized out>
(gdb) print i
$7 = <optimized out>
(gdb) print symtab
$8 = (gold::Symbol_table *) 0x7ffe8567e0a0
(gdb) print *symtab
$9 = {saw_undefined_ = 100, first_global_index_ = 0, offset_ = 0, output_count_
= 0, dynamic_offset_ = 0, first_dynamic_global_index_ = 0, dynamic_count_ = 0,
table_ = {_M_h = {<std::__detail::_Hashtable_base<std::pair<unsigned long,
unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const,
gold::Symbol*>, std::__detail::_Select1st, gold::Symbol_table::Symbol_table_eq,
gold::Symbol_table::Symbol_table_hash, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true,
false, true> >> = {<std::__detail::_Hash_code_base<std::pair<unsigned long,
unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const,
gold::Symbol*>, std::__detail::_Select1st,
gold::Symbol_table::Symbol_table_hash, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, true>> =
{<std::__detail::_Hashtable_ebo_helper<0, std::__detail::_Select1st, true>> =
{<std::__detail::_Select1st> = {<No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<1, gold::Symbol_table::Symbol_table_hash,
true>> = {<gold::Symbol_table::Symbol_table_hash> = {<No data fields>}, <No
data fields>}, <std::__detail::_Hashtable_ebo_helper<2,
std::__detail::_Mod_range_hashing, true>> =
{<std::__detail::_Mod_range_hashing> = {<No data fields>}, <No data fields>},
<No data fields>}, <std::__detail::_Hashtable_ebo_helper<0,
gold::Symbol_table::Symbol_table_eq, true>> =
{<gold::Symbol_table::Symbol_table_eq> = {<No data fields>}, <No data fields>},
<No data fields>}, <std::__detail::_Map_base<std::pair<unsigned long, unsigned
long>, std::pair<std::pair<unsigned long, unsigned long> const, gold::Symbol*>,
std::allocator<std::pair<std::pair<unsigned long, unsigned long> const,
gold::Symbol*> >, std::__detail::_Select1st,
gold::Symbol_table::Symbol_table_eq, gold::Symbol_table::Symbol_table_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true>, true>> = {<No data fields>},
<std::__detail::_Insert<std::pair<unsigned long, unsigned long>,
std::pair<std::pair<unsigned long, unsigned long> const, gold::Symbol*>,
std::allocator<std::pair<std::pair<unsigned long, unsigned long> const,
gold::Symbol*> >, std::__detail::_Select1st,
gold::Symbol_table::Symbol_table_eq, gold::Symbol_table::Symbol_table_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true>, false>> = {<std::__detail::_Insert_base<std::pair<unsigned long,
unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const,
gold::Symbol*>, std::allocator<std::pair<std::pair<unsigned long, unsigned
long> const, gold::Symbol*> >, std::__detail::_Select1st,
gold::Symbol_table::Symbol_table_eq, gold::Symbol_table::Symbol_table_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true> >> = {<No data fields>}, <No data fields>},
<std::__detail::_Rehash_base<std::pair<unsigned long, unsigned long>,
std::pair<std::pair<unsigned long, unsigned long> const, gold::Symbol*>,
std::allocator<std::pair<std::pair<unsigned long, unsigned long> const,
gold::Symbol*> >, std::__detail::_Select1st,
gold::Symbol_table::Symbol_table_eq, gold::Symbol_table::Symbol_table_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true>, std::integral_constant<bool, true> >> = {<No data fields>},
<std::__detail::_Equality<std::pair<unsigned long, unsigned long>,
std::pair<std::pair<unsigned long, unsigned long> const, gold::Symbol*>,
std::allocator<std::pair<std::pair<unsigned long, unsigned long> const,
gold::Symbol*> >, std::__detail::_Select1st,
gold::Symbol_table::Symbol_table_eq, gold::Symbol_table::Symbol_table_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true>, true>> = {<No data fields>},
<std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::pair<unsigned
long, unsigned long> const, gold::Symbol*>, true> > >> =
{<std::__detail::_Hashtable_ebo_helper<0,
std::allocator<std::__detail::_Hash_node<std::pair<std::pair<unsigned long,
unsigned long> const, gold::Symbol*>, true> >, true>> =
{<std::allocator<std::__detail::_Hash_node<std::pair<std::pair<unsigned long,
unsigned long> const, gold::Symbol*>, true> >> =
{<__gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<std::pair<unsigned
long, unsigned long> const, gold::Symbol*>, true> >> = {<No data fields>}, <No
data fields>}, <No data fields>}, <No data fields>}, _M_buckets =
0x7f138c3f1410, _M_bucket_count = 53201, _M_before_begin = {_M_nxt =
0x7f138c4f0640}, _M_element_count = 30766, _M_rehash_policy = {static
_S_growth_factor = 2, _M_max_load_factor = 1, _M_next_resize = 53201},
_M_single_bucket = 0x0}}, namepool_ = {string_set_ = {_M_h =
{<std::__detail::_Hashtable_base<gold::Stringpool_template<char>::Hashkey,
std::pair<gold::Stringpool_template<char>::Hashkey const, unsigned long>,
std::__detail::_Select1st, gold::Stringpool_template<char>::Stringpool_eq,
gold::Stringpool_template<char>::Stringpool_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Hashtable_traits<true, false, true> >> =
{<std::__detail::_Hash_code_base<gold::Stringpool_template<char>::Hashkey,
std::pair<gold::Stringpool_template<char>::Hashkey const, unsigned long>,
std::__detail::_Select1st, gold::Stringpool_template<char>::Stringpool_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, true>>
= {<std::__detail::_Hashtable_ebo_helper<0, std::__detail::_Select1st, true>> =
{<std::__detail::_Select1st> = {<No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<1,
gold::Stringpool_template<char>::Stringpool_hash, true>> =
{<gold::Stringpool_template<char>::Stringpool_hash> = {<No data fields>}, <No
data fields>}, <std::__detail::_Hashtable_ebo_helper<2,
std::__detail::_Mod_range_hashing, true>> =
{<std::__detail::_Mod_range_hashing> = {<No data fields>}, <No data fields>},
<No data fields>}, <std::__detail::_Hashtable_ebo_helper<0,
gold::Stringpool_template<char>::Stringpool_eq, true>> =
{<gold::Stringpool_template<char>::Stringpool_eq> = {<No data fields>}, <No
data fields>}, <No data fields>},
<std::__detail::_Map_base<gold::Stringpool_template<char>::Hashkey,
std::pair<gold::Stringpool_template<char>::Hashkey const, unsigned long>,
std::allocator<std::pair<gold::Stringpool_template<char>::Hashkey const,
unsigned long> >, std::__detail::_Select1st,
gold::Stringpool_template<char>::Stringpool_eq,
gold::Stringpool_template<char>::Stringpool_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true>, true>> = {<No data fields>},
<std::__detail::_Insert<gold::Stringpool_template<char>::Hashkey,
std::pair<gold::Stringpool_template<char>::Hashkey const, unsigned long>,
std::allocator<std::pair<gold::Stringpool_template<char>::Hashkey const,
unsigned long> >, std::__detail::_Select1st,
gold::Stringpool_template<char>::Stringpool_eq,
gold::Stringpool_template<char>::Stringpool_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true>, false>> =
{<std::__detail::_Insert_base<gold::Stringpool_template<char>::Hashkey,
std::pair<gold::Stringpool_template<char>::Hashkey const, unsigned long>,
std::allocator<std::pair<gold::Stringpool_template<char>::Hashkey const,
unsigned long> >, std::__detail::_Select1st,
gold::Stringpool_template<char>::Stringpool_eq,
gold::Stringpool_template<char>::Stringpool_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true> >> = {<No data fields>}, <No data fields>},
<std::__detail::_Rehash_base<gold::Stringpool_template<char>::Hashkey,
std::pair<gold::Stringpool_template<char>::Hashkey const, unsigned long>,
std::allocator<std::pair<gold::Stringpool_template<char>::Hashkey const,
unsigned long> >, std::__detail::_Select1st,
gold::Stringpool_template<char>::Stringpool_eq,
gold::Stringpool_template<char>::Stringpool_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true>, std::integral_constant<bool, true> >> = {<No data fields>},
<std::__detail::_Equality<gold::Stringpool_template<char>::Hashkey,
std::pair<gold::Stringpool_template<char>::Hashkey const, unsigned long>,
std::allocator<std::pair<gold::Stringpool_template<char>::Hashkey const,
unsigned long> >, std::__detail::_Select1st,
gold::Stringpool_template<char>::Stringpool_eq,
gold::Stringpool_template<char>::Stringpool_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true>, true>> = {<No data fields>},
<std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<gold::Stringpool_template<char>::Hashkey
const, unsigned long>, true> > >> = {<std::__detail::_Hashtable_ebo_helper<0,
std::allocator<std::__detail::_Hash_node<std::pair<gold::Stringpool_template<char>::Hashkey
const, unsigned long>, true> >, true>> =
{<std::allocator<std::__detail::_Hash_node<std::pair<gold::Stringpool_template<char>::Hashkey
const, unsigned long>, true> >> =
{<__gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<gold::Stringpool_template<char>::Hashkey
const, unsigned long>, true> >> = {<No data fields>}, <No data fields>}, <No
data fields>}, <No data fields>}, _M_buckets = 0x7f13ed5ce010, _M_bucket_count
= 26267, _M_before_begin = {_M_nxt = 0x7f138c4f06f0}, _M_element_count = 16078,
_M_rehash_policy = {static _S_growth_factor = 2, _M_max_load_factor = 1,
_M_next_resize = 26267}, _M_single_bucket = 0x0}}, key_to_offset_ = {static
chunk_size = <optimized out>, chunks_ = {<std::_Vector_base<std::vector<long,
std::allocator<long> >, std::allocator<std::vector<long, std::allocator<long> >
> >> = {_M_impl = {<std::allocator<std::vector<long, std::allocator<long> > >>
= {<__gnu_cxx::new_allocator<std::vector<long, std::allocator<long> > >> = {<No
data fields>}, <No data fields>}, _M_start = 0x55794be15be0, _M_finish =
0x55794be15c28, _M_end_of_storage = 0x55794be15c28}}, <No data fields>}, size_
= 16078}, strings_ =
{<std::__cxx11::_List_base<gold::Stringpool_template<char>::Stringdata*,
std::allocator<gold::Stringpool_template<char>::Stringdata*> >> = {_M_impl =
{<std::allocator<std::_List_node<gold::Stringpool_template<char>::Stringdata*>
>> =
{<__gnu_cxx::new_allocator<std::_List_node<gold::Stringpool_template<char>::Stringdata*>
>> = {<No data fields>}, <No data fields>}, _M_node =
{<std::__detail::_List_node_base> = {_M_next = 0x7f135c001600, _M_prev =
0x7f135c001d90}, _M_size = 478}}}, <No data fields>}, strtab_size_ = 0,
zero_null_ = true, optimize_ = false, offset_ = 466076, addralign_ = 1},
forwarders_ = {_M_h = {<std::__detail::_Hashtable_base<gold::Symbol const*,
std::pair<gold::Symbol const* const, gold::Symbol*>, std::__detail::_Select1st,
std::equal_to<gold::Symbol const*>, std::hash<gold::Symbol const*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Hashtable_traits<false, false, true> >> =
{<std::__detail::_Hash_code_base<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Symbol*>, std::__detail::_Select1st, std::hash<gold::Symbol
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, false>> =
{<std::__detail::_Hashtable_ebo_helper<0, std::__detail::_Select1st, true>> =
{<std::__detail::_Select1st> = {<No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<1, std::hash<gold::Symbol const*>, true>>
= {<std::hash<gold::Symbol const*>> = {<std::__hash_base<unsigned long,
gold::Symbol const*>> = {<No data fields>}, <No data fields>}, <No data
fields>}, <std::__detail::_Hashtable_ebo_helper<2,
std::__detail::_Mod_range_hashing, true>> =
{<std::__detail::_Mod_range_hashing> = {<No data fields>}, <No data fields>},
<No data fields>}, <std::__detail::_Hashtable_ebo_helper<0,
std::equal_to<gold::Symbol const*>, true>> = {<std::equal_to<gold::Symbol
const*>> = {<std::binary_function<gold::Symbol const*, gold::Symbol const*,
bool>> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data
fields>}, <std::__detail::_Map_base<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Symbol*>, std::allocator<std::pair<gold::Symbol const*
const, gold::Symbol*> >, std::__detail::_Select1st, std::equal_to<gold::Symbol
const*>, std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>> = {<No data
fields>}, <std::__detail::_Insert<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Symbol*>, std::allocator<std::pair<gold::Symbol const*
const, gold::Symbol*> >, std::__detail::_Select1st, std::equal_to<gold::Symbol
const*>, std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, false>> =
{<std::__detail::_Insert_base<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Symbol*>, std::allocator<std::pair<gold::Symbol const*
const, gold::Symbol*> >, std::__detail::_Select1st, std::equal_to<gold::Symbol
const*>, std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true> >> = {<No data fields>},
<No data fields>}, <std::__detail::_Rehash_base<gold::Symbol const*,
std::pair<gold::Symbol const* const, gold::Symbol*>,
std::allocator<std::pair<gold::Symbol const* const, gold::Symbol*> >,
std::__detail::_Select1st, std::equal_to<gold::Symbol const*>,
std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>,
std::integral_constant<bool, true> >> = {<No data fields>},
<std::__detail::_Equality<gold::Symbol const*, std::pair<gold::Symbol const*
const, gold::Symbol*>, std::allocator<std::pair<gold::Symbol const* const,
gold::Symbol*> >, std::__detail::_Select1st, std::equal_to<gold::Symbol
const*>, std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>> = {<No data
fields>},
<std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol
const* const, gold::Symbol*>, false> > >> =
{<std::__detail::_Hashtable_ebo_helper<0,
std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol const* const,
gold::Symbol*>, false> >, true>> =
{<std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol const* const,
gold::Symbol*>, false> >> =
{<__gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<gold::Symbol
const* const, gold::Symbol*>, false> >> = {<No data fields>}, <No data
fields>}, <No data fields>}, <No data fields>}, _M_buckets = 0x7f138c0098e0,
_M_bucket_count = 79, _M_before_begin = {_M_nxt = 0x7f138c4db5d0},
_M_element_count = 53, _M_rehash_policy = {static _S_growth_factor = 2,
_M_max_load_factor = 1, _M_next_resize = 79}, _M_single_bucket = 0x0}},
weak_aliases_ = {_M_h = {<std::__detail::_Hashtable_base<gold::Symbol*,
std::pair<gold::Symbol* const, gold::Symbol*>, std::__detail::_Select1st,
std::equal_to<gold::Symbol*>, std::hash<gold::Symbol*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Hashtable_traits<false, false, true> >> =
{<std::__detail::_Hash_code_base<gold::Symbol*, std::pair<gold::Symbol* const,
gold::Symbol*>, std::__detail::_Select1st, std::hash<gold::Symbol*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false>>
= {<std::__detail::_Hashtable_ebo_helper<0, std::__detail::_Select1st, true>> =
{<std::__detail::_Select1st> = {<No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<1, std::hash<gold::Symbol*>, true>> =
{<std::hash<gold::Symbol*>> = {<std::__hash_base<unsigned long, gold::Symbol*>>
= {<No data fields>}, <No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<2, std::__detail::_Mod_range_hashing,
true>> = {<std::__detail::_Mod_range_hashing> = {<No data fields>}, <No data
fields>}, <No data fields>}, <std::__detail::_Hashtable_ebo_helper<0,
std::equal_to<gold::Symbol*>, true>> = {<std::equal_to<gold::Symbol*>> =
{<std::binary_function<gold::Symbol*, gold::Symbol*, bool>> = {<No data
fields>}, <No data fields>}, <No data fields>}, <No data fields>},
<std::__detail::_Map_base<gold::Symbol*, std::pair<gold::Symbol* const,
gold::Symbol*>, std::allocator<std::pair<gold::Symbol* const, gold::Symbol*> >,
std::__detail::_Select1st, std::equal_to<gold::Symbol*>,
std::hash<gold::Symbol*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>> = {<No data
fields>}, <std::__detail::_Insert<gold::Symbol*, std::pair<gold::Symbol* const,
gold::Symbol*>, std::allocator<std::pair<gold::Symbol* const, gold::Symbol*> >,
std::__detail::_Select1st, std::equal_to<gold::Symbol*>,
std::hash<gold::Symbol*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, false>> =
{<std::__detail::_Insert_base<gold::Symbol*, std::pair<gold::Symbol* const,
gold::Symbol*>, std::allocator<std::pair<gold::Symbol* const, gold::Symbol*> >,
std::__detail::_Select1st, std::equal_to<gold::Symbol*>,
std::hash<gold::Symbol*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true> >> = {<No data fields>},
<No data fields>}, <std::__detail::_Rehash_base<gold::Symbol*,
std::pair<gold::Symbol* const, gold::Symbol*>,
std::allocator<std::pair<gold::Symbol* const, gold::Symbol*> >,
std::__detail::_Select1st, std::equal_to<gold::Symbol*>,
std::hash<gold::Symbol*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>,
std::integral_constant<bool, true> >> = {<No data fields>},
<std::__detail::_Equality<gold::Symbol*, std::pair<gold::Symbol* const,
gold::Symbol*>, std::allocator<std::pair<gold::Symbol* const, gold::Symbol*> >,
std::__detail::_Select1st, std::equal_to<gold::Symbol*>,
std::hash<gold::Symbol*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>> = {<No data
fields>},
<std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol*
const, gold::Symbol*>, false> > >> = {<std::__detail::_Hashtable_ebo_helper<0,
std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol* const,
gold::Symbol*>, false> >, true>> =
{<std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol* const,
gold::Symbol*>, false> >> =
{<__gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<gold::Symbol*
const, gold::Symbol*>, false> >> = {<No data fields>}, <No data fields>}, <No
data fields>}, <No data fields>}, _M_buckets = 0x7f13700011c0, _M_bucket_count
= 17, _M_before_begin = {_M_nxt = 0x7f138c4e7170}, _M_element_count = 15,
_M_rehash_policy = {static _S_growth_factor = 2, _M_max_load_factor = 1,
_M_next_resize = 17}, _M_single_bucket = 0x0}}, commons_ =
{<std::_Vector_base<gold::Symbol*, std::allocator<gold::Symbol*> >> = {_M_impl
= {<std::allocator<gold::Symbol*>> = {<__gnu_cxx::new_allocator<gold::Symbol*>>
= {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}}, <No data fields>}, tls_commons_ =
{<std::_Vector_base<gold::Symbol*, std::allocator<gold::Symbol*> >> = {_M_impl
= {<std::allocator<gold::Symbol*>> = {<__gnu_cxx::new_allocator<gold::Symbol*>>
= {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}}, <No data fields>}, small_commons_ =
{<std::_Vector_base<gold::Symbol*, std::allocator<gold::Symbol*> >> = {_M_impl
= {<std::allocator<gold::Symbol*>> = {<__gnu_cxx::new_allocator<gold::Symbol*>>
= {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}}, <No data fields>}, large_commons_ =
{<std::_Vector_base<gold::Symbol*, std::allocator<gold::Symbol*> >> = {_M_impl
= {<std::allocator<gold::Symbol*>> = {<__gnu_cxx::new_allocator<gold::Symbol*>>
= {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}}, <No data fields>}, forced_locals_ =
{<std::_Vector_base<gold::Symbol*, std::allocator<gold::Symbol*> >> = {_M_impl
= {<std::allocator<gold::Symbol*>> = {<__gnu_cxx::new_allocator<gold::Symbol*>>
= {<No data fields>}, <No data fields>}, _M_start = 0x7f138c014200, _M_finish =
0x7f138c0143d8, _M_end_of_storage = 0x7f138c014400}}, <No data fields>},
warnings_ = {warnings_ = {_M_h = {<std::__detail::_Hashtable_base<char const*,
std::pair<char const* const, gold::Warnings::Warning_location>,
std::__detail::_Select1st, std::equal_to<char const*>, std::hash<char const*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Hashtable_traits<false, false, true> >> =
{<std::__detail::_Hash_code_base<char const*, std::pair<char const* const,
gold::Warnings::Warning_location>, std::__detail::_Select1st, std::hash<char
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, false>> =
{<std::__detail::_Hashtable_ebo_helper<0, std::__detail::_Select1st, true>> =
{<std::__detail::_Select1st> = {<No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<1, std::hash<char const*>, true>> =
{<std::hash<char const*>> = {<std::__hash_base<unsigned long, char const*>> =
{<No data fields>}, <No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<2, std::__detail::_Mod_range_hashing,
true>> = {<std::__detail::_Mod_range_hashing> = {<No data fields>}, <No data
fields>}, <No data fields>}, <std::__detail::_Hashtable_ebo_helper<0,
std::equal_to<char const*>, true>> = {<std::equal_to<char const*>> =
{<std::binary_function<char const*, char const*, bool>> = {<No data fields>},
<No data fields>}, <No data fields>}, <No data fields>},
<std::__detail::_Map_base<char const*, std::pair<char const* const,
gold::Warnings::Warning_location>, std::allocator<std::pair<char const* const,
gold::Warnings::Warning_location> >, std::__detail::_Select1st,
std::equal_to<char const*>, std::hash<char const*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false,
false, true>, true>> = {<No data fields>}, <std::__detail::_Insert<char const*,
std::pair<char const* const, gold::Warnings::Warning_location>,
std::allocator<std::pair<char const* const, gold::Warnings::Warning_location>
>, std::__detail::_Select1st, std::equal_to<char const*>, std::hash<char
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, false>> =
{<std::__detail::_Insert_base<char const*, std::pair<char const* const,
gold::Warnings::Warning_location>, std::allocator<std::pair<char const* const,
gold::Warnings::Warning_location> >, std::__detail::_Select1st,
std::equal_to<char const*>, std::hash<char const*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false,
false, true> >> = {<No data fields>}, <No data fields>},
<std::__detail::_Rehash_base<char const*, std::pair<char const* const,
gold::Warnings::Warning_location>, std::allocator<std::pair<char const* const,
gold::Warnings::Warning_location> >, std::__detail::_Select1st,
std::equal_to<char const*>, std::hash<char const*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false,
false, true>, std::integral_constant<bool, true> >> = {<No data fields>},
<std::__detail::_Equality<char const*, std::pair<char const* const,
gold::Warnings::Warning_location>, std::allocator<std::pair<char const* const,
gold::Warnings::Warning_location> >, std::__detail::_Select1st,
std::equal_to<char const*>, std::hash<char const*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false,
false, true>, true>> = {<No data fields>},
<std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char
const* const, gold::Warnings::Warning_location>, false> > >> =
{<std::__detail::_Hashtable_ebo_helper<0,
std::allocator<std::__detail::_Hash_node<std::pair<char const* const,
gold::Warnings::Warning_location>, false> >, true>> =
{<std::allocator<std::__detail::_Hash_node<std::pair<char const* const,
gold::Warnings::Warning_location>, false> >> =
{<__gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<char const*
const, gold::Warnings::Warning_location>, false> >> = {<No data fields>}, <No
data fields>}, <No data fields>}, <No data fields>}, _M_buckets =
0x7f138c007ce0, _M_bucket_count = 37, _M_before_begin = {_M_nxt =
0x7f138c46e2f0}, _M_element_count = 35, _M_rehash_policy = {static
_S_growth_factor = 2, _M_max_load_factor = 1, _M_next_resize = 37},
_M_single_bucket = 0x0}}}, candidate_odr_violations_ = {_M_h =
{<std::__detail::_Hashtable_base<char const*, std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> >
>, std::__detail::_Select1st, std::equal_to<char const*>, std::hash<char
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<false,
false, true> >> = {<std::__detail::_Hash_code_base<char const*, std::pair<char
const* const, std::unordered_set<gold::Symbol_location,
gold::Symbol_location_hash, std::equal_to<gold::Symbol_location>,
std::allocator<gold::Symbol_location> > >, std::__detail::_Select1st,
std::hash<char const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, false>> =
{<std::__detail::_Hashtable_ebo_helper<0, std::__detail::_Select1st, true>> =
{<std::__detail::_Select1st> = {<No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<1, std::hash<char const*>, true>> =
{<std::hash<char const*>> = {<std::__hash_base<unsigned long, char const*>> =
{<No data fields>}, <No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<2, std::__detail::_Mod_range_hashing,
true>> = {<std::__detail::_Mod_range_hashing> = {<No data fields>}, <No data
fields>}, <No data fields>}, <std::__detail::_Hashtable_ebo_helper<0,
std::equal_to<char const*>, true>> = {<std::equal_to<char const*>> =
{<std::binary_function<char const*, char const*, bool>> = {<No data fields>},
<No data fields>}, <No data fields>}, <No data fields>},
<std::__detail::_Map_base<char const*, std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> >
>, std::allocator<std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> > >
>, std::__detail::_Select1st, std::equal_to<char const*>, std::hash<char
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>> = {<No data
fields>}, <std::__detail::_Insert<char const*, std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> >
>, std::allocator<std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> > >
>, std::__detail::_Select1st, std::equal_to<char const*>, std::hash<char
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, false>> =
{<std::__detail::_Insert_base<char const*, std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> >
>, std::allocator<std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> > >
>, std::__detail::_Select1st, std::equal_to<char const*>, std::hash<char
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true> >> = {<No data fields>},
<No data fields>}, <std::__detail::_Rehash_base<char const*, std::pair<char
const* const, std::unordered_set<gold::Symbol_location,
gold::Symbol_location_hash, std::equal_to<gold::Symbol_location>,
std::allocator<gold::Symbol_location> > >, std::allocator<std::pair<char const*
const, std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> > >
>, std::__detail::_Select1st, std::equal_to<char const*>, std::hash<char
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>,
std::integral_constant<bool, true> >> = {<No data fields>},
<std::__detail::_Equality<char const*, std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> >
>, std::allocator<std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> > >
>, std::__detail::_Select1st, std::equal_to<char const*>, std::hash<char
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>> = {<No data
fields>},
<std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char
const* const, std::unordered_set<gold::Symbol_location,
gold::Symbol_location_hash, std::equal_to<gold::Symbol_location>,
std::allocator<gold::Symbol_location> > >, false> > >> =
{<std::__detail::_Hashtable_ebo_helper<0,
std::allocator<std::__detail::_Hash_node<std::pair<char const* const,
std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> >
>, false> >, true>> = {<std::allocator<std::__detail::_Hash_node<std::pair<char
const* const, std::unordered_set<gold::Symbol_location,
gold::Symbol_location_hash, std::equal_to<gold::Symbol_location>,
std::allocator<gold::Symbol_location> > >, false> >> =
{<__gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<char const*
const, std::unordered_set<gold::Symbol_location, gold::Symbol_location_hash,
std::equal_to<gold::Symbol_location>, std::allocator<gold::Symbol_location> >
>, false> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No
data fields>}, _M_buckets = 0x7ffe8567e2e8, _M_bucket_count = 1,
_M_before_begin = {_M_nxt = 0x0}, _M_element_count = 0, _M_rehash_policy =
{static _S_growth_factor = 2, _M_max_load_factor = 1, _M_next_resize = 0},
_M_single_bucket = 0x0}}, copied_symbol_dynobjs_ = {_M_h =
{<std::__detail::_Hashtable_base<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Dynobj*>, std::__detail::_Select1st,
std::equal_to<gold::Symbol const*>, std::hash<gold::Symbol const*>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Hashtable_traits<false, false, true> >> =
{<std::__detail::_Hash_code_base<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Dynobj*>, std::__detail::_Select1st, std::hash<gold::Symbol
const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, false>> =
{<std::__detail::_Hashtable_ebo_helper<0, std::__detail::_Select1st, true>> =
{<std::__detail::_Select1st> = {<No data fields>}, <No data fields>},
<std::__detail::_Hashtable_ebo_helper<1, std::hash<gold::Symbol const*>, true>>
= {<std::hash<gold::Symbol const*>> = {<std::__hash_base<unsigned long,
gold::Symbol const*>> = {<No data fields>}, <No data fields>}, <No data
fields>}, <std::__detail::_Hashtable_ebo_helper<2,
std::__detail::_Mod_range_hashing, true>> =
{<std::__detail::_Mod_range_hashing> = {<No data fields>}, <No data fields>},
<No data fields>}, <std::__detail::_Hashtable_ebo_helper<0,
std::equal_to<gold::Symbol const*>, true>> = {<std::equal_to<gold::Symbol
const*>> = {<std::binary_function<gold::Symbol const*, gold::Symbol const*,
bool>> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data
fields>}, <std::__detail::_Map_base<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Dynobj*>, std::allocator<std::pair<gold::Symbol const*
const, gold::Dynobj*> >, std::__detail::_Select1st, std::equal_to<gold::Symbol
const*>, std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>> = {<No data
fields>}, <std::__detail::_Insert<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Dynobj*>, std::allocator<std::pair<gold::Symbol const*
const, gold::Dynobj*> >, std::__detail::_Select1st, std::equal_to<gold::Symbol
const*>, std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, false>> =
{<std::__detail::_Insert_base<gold::Symbol const*, std::pair<gold::Symbol
const* const, gold::Dynobj*>, std::allocator<std::pair<gold::Symbol const*
const, gold::Dynobj*> >, std::__detail::_Select1st, std::equal_to<gold::Symbol
const*>, std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true> >> = {<No data fields>},
<No data fields>}, <std::__detail::_Rehash_base<gold::Symbol const*,
std::pair<gold::Symbol const* const, gold::Dynobj*>,
std::allocator<std::pair<gold::Symbol const* const, gold::Dynobj*> >,
std::__detail::_Select1st, std::equal_to<gold::Symbol const*>,
std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>,
std::integral_constant<bool, true> >> = {<No data fields>},
<std::__detail::_Equality<gold::Symbol const*, std::pair<gold::Symbol const*
const, gold::Dynobj*>, std::allocator<std::pair<gold::Symbol const* const,
gold::Dynobj*> >, std::__detail::_Select1st, std::equal_to<gold::Symbol
const*>, std::hash<gold::Symbol const*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>> = {<No data
fields>},
<std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol
const* const, gold::Dynobj*>, false> > >> =
{<std::__detail::_Hashtable_ebo_helper<0,
std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol const* const,
gold::Dynobj*>, false> >, true>> =
{<std::allocator<std::__detail::_Hash_node<std::pair<gold::Symbol const* const,
gold::Dynobj*>, false> >> =
{<__gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<gold::Symbol
const* const, gold::Dynobj*>, false> >> = {<No data fields>}, <No data
fields>}, <No data fields>}, <No data fields>}, _M_buckets = 0x7ffe8567e320,
_M_bucket_count = 1, _M_before_begin = {_M_nxt = 0x0}, _M_element_count = 0,
_M_rehash_policy = {static _S_growth_factor = 2, _M_max_load_factor = 1,
_M_next_resize = 0}, _M_single_bucket = 0x0}}, version_script_ =
@0x7ffe85687bd8, gc_ = 0x7ffe8567df00, icf_ = 0x0, target_symbols_ =
{<std::_Vector_base<gold::Symbol*, std::allocator<gold::Symbol*> >> = {_M_impl
= {<std::allocator<gold::Symbol*>> = {<__gnu_cxx::new_allocator<gold::Symbol*>>
= {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}}, <No data fields>}}
(gdb) disassemble $pc-20,$pc+20
Dump of assembler code from 0x55794b4cf4af to 0x55794b4cf4d7:
0x000055794b4cf4af
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+191>: add %al,-0x75(%rcx)
0x000055794b4cf4b2
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+194>: push %rsi
0x000055794b4cf4b3
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+195>: sbb %al,0x410b75d2(%rbp)
0x000055794b4cf4b9
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+201>: testb $0x20,0x3b(%rsi)
0x000055794b4cf4bd
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+205>: jne 0x55794b4cf6c0
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+720>
=> 0x000055794b4cf4c3
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+211>: mov 0x0(%rbp),%esi
0x000055794b4cf4c6
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+214>: and $0x7,%eax
0x000055794b4cf4c9
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+217>: lea -0x2(%rsi),%edx
0x000055794b4cf4cc
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+220>: cmp $0x2,%edx
0x000055794b4cf4cf
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+223>: ja 0x55794b4cf658
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+616>
0x000055794b4cf4d5
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+229>: test %al,%al
End of assembler dump.
(gdb) info reg
rax 0x80 128
rbx 0x0 0
rcx 0x0 0
rdx 0x1 1
rsi 0x4 4
rdi 0x1 1
rbp 0x10 0x10
rsp 0x7f13d55b2c20 0x7f13d55b2c20
r8 0x1f 31
r9 0x7f138c4f07f0 139721935095792
r10 0x3 3
r11 0x0 0
r12 0x7f13d55b2c50 139723160628304
r13 0x7f13d55b2c60 139723160628320
r14 0x7f138c002510 139721929925904
r15 0x0 0
rip 0x55794b4cf4c3 0x55794b4cf4c3
<gold::Pluginobj::get_symbol_resolution_info(gold::Symbol_table*, int,
ld_plugin_symbol*, int) const+211>
eflags 0x10202 [ IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb) info thread
Id Target Id Frame
* 1 Thread 0x7f13d55b3700 (LWP 20592)
gold::Pluginobj::get_symbol_resolution_info (this=0x7f1370001040,
symtab=0x7ffe8567e0a0, nsyms=<optimized out>, syms=<optimized out>,
version=<optimized out>) at ../../gold/plugin.cc:1279
2 Thread 0x7f13c55af700 (LWP 20596) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
3 Thread 0x7f13e95b8700 (LWP 20587) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
4 Thread 0x7f13a95a8700 (LWP 20603) 0x000055794b53b7b2 in
gold::Symbol::set_undef_binding (bind=<optimized out>, this=<optimized out>) at
../../gold/../elfcpp/elfcpp.h:1526
5 Thread 0x7f13ed5b9700 (LWP 20586) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
6 Thread 0x7f13c95b0700 (LWP 20595) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
7 Thread 0x7f13a15a6700 (LWP 20605) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
8 Thread 0x7f13ad5a9700 (LWP 20602) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
9 Thread 0x7f13d95b4700 (LWP 20591) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
10 Thread 0x7f13d15b2700 (LWP 20593) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
11 Thread 0x7f139d5a5700 (LWP 20606) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
12 Thread 0x7f13b55ab700 (LWP 20600) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
13 Thread 0x7f13c15ae700 (LWP 20597) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
14 Thread 0x7f13995a4700 (LWP 20607) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
15 Thread 0x7f13ed91c100 (LWP 20585) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
16 Thread 0x7f13b15aa700 (LWP 20601) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
17 Thread 0x7f13bd5ad700 (LWP 20598) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
18 Thread 0x7f13955a3700 (LWP 20608) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
19 Thread 0x7f13a55a7700 (LWP 20604) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
20 Thread 0x7f13b95ac700 (LWP 20599) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
21 Thread 0x7f13cd5b1700 (LWP 20594) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
22 Thread 0x7f13dd5b5700 (LWP 20590) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
23 Thread 0x7f13e15b6700 (LWP 20589) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
24 Thread 0x7f13e55b7700 (LWP 20588) futex_wait_cancelable (private=0,
expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
(gdb) up
#1 0x00007f13ed5be0cf in write_resolution () at
../../src/lto-plugin/lto-plugin.c:490
490 get_symbols_v2 (info->handle, symtab->nsyms, syms);
(gdb) print symtab->nsyms
$4 = 320
(gdb) print syms
$5 = <optimized out>
(gdb) print symtab->syms
$6 = (struct ld_plugin_symbol *) 0x0
(gdb) print symtab
$11 = (struct plugin_symtab *) 0x7f1370001150
(gdb) print *symtab
$12 = {nsyms = 320, aux = 0x7f1370010a80, syms = 0x0, id = 5375926499655753679}
(gdb) list lto-plugin.c:467,491
467 /* Writes the relocations to disk. */
468
469 static void
470 write_resolution (void)
471 {
472 unsigned int i;
473 FILE *f;
474
475 check (resolution_file, LDPL_FATAL, "resolution file not specified");
476 f = fopen (resolution_file, "w");
477 check (f, LDPL_FATAL, "could not open file");
478
479 fprintf (f, "%d\n", num_claimed_files);
480
481 for (i = 0; i < num_claimed_files; i++)
482 {
483 struct plugin_file_info *info = &claimed_files[i];
484 struct plugin_symtab *symtab = &info->symtab;
485 struct ld_plugin_symbol *syms = symtab->syms;
486
487 /* Version 2 of API supports IRONLY_EXP resolution that is
488 accepted by GCC-4.7 and newer. */
489 if (get_symbols_v2)
490 get_symbols_v2 (info->handle, symtab->nsyms, syms);
491 else
Inside VM:
root@debian:~# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 40 bits physical, 48 bits virtual
CPU(s): 12
On-line CPU(s) list: 0-11
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 12
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 6
Model: 6
Model name: QEMU Virtual CPU version 2.5+
Stepping: 3
CPU MHz: 2994.374
BogoMIPS: 5988.74
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 64K
L1i cache: 64K
L2 cache: 512K
L3 cache: 16384K
NUMA node0 CPU(s): 0-11
Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 syscall nx lm nopl cpuid tsc_known_freq pni
cx16 x2apic hypervisor lahf_lm 3dnowprefetch vmmcall
Host:
root@rechner:~# lscpu
Architektur: x86_64
CPU Operationsmodus: 32-bit, 64-bit
Byte-Reihenfolge: Little Endian
Address sizes: 43 bits physical, 48 bits virtual
CPU(s): 16
Liste der Online-CPU(s): 0-15
Thread(s) pro Kern: 2
Kern(e) pro Socket: 8
Sockel: 1
NUMA-Knoten: 1
Anbieterkennung: AuthenticAMD
Prozessorfamilie: 23
Modell: 1
Modellname: AMD Ryzen 7 1700 Eight-Core Processor
Stepping: 1
CPU MHz: 1382.300
Maximale Taktfrequenz der CPU: 3000,0000
Minimale Taktfrequenz der CPU: 1550,0000
BogoMIPS: 5987.97
Virtualisierung: AMD-V
L1d Cache: 32K
L1i Cache: 64K
L2 Cache: 512K
L3 Cache: 8192K
NUMA-Knoten0 CPU(s): 0-15
Markierungen: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt
pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid
aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes
xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a
misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb
bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1
avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves
clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean
flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif
overflow_recov succor smca
# Unimportant, just trying to show gdb the command line ...
root@debian:~# file
/var/lib/systemd/coredump/core.ld\\x2egold.1000.ad23efe57a0841cb8fe392bcf6690d6c.20585.1553286564000000.lz4
/var/lib/systemd/coredump/core.ld\x2egold.1000.ad23efe57a0841cb8fe392bcf6690d6c.20585.1553286564000000.lz4:
LZ4 compressed data (v1.4+)
root@debian:~# cp
/var/lib/systemd/coredump/core.ld\\x2egold.1000.ad23efe57a0841cb8fe392bcf6690d6c.20585.1553286564000000.lz4
/tmp -a
root@debian:~# unlz4
/tmp/core.ld\\x2egold.1000.ad23efe57a0841cb8fe392bcf6690d6c.20585.1553286564000000.lz4
Decoding file
/tmp/core.ld\x2egold.1000.ad23efe57a0841cb8fe392bcf6690d6c.20585.1553286564000000
/tmp/core.ld\x2egold : decoded 1553039360 bytes
root@debian:~# file
/tmp/core.ld\\x2egold.1000.ad23efe57a0841cb8fe392bcf6690d6c.20585.1553286564000000
/tmp/core.ld\x2egold.1000.ad23efe57a0841cb8fe392bcf6690d6c.20585.1553286564000000:
ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style, from
'/usr/bin/ld.gold -plugin /usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so
-plug', real uid: 1000, effective uid: 1000, real gid: 1000, effective gid:
1000, execfn: '/usr/bin/ld.gold', platform: 'x86_64'
(gdb) thread 15
[Switching to thread 15 (Thread 0x7f13ed91c100 (LWP 20585))]
#0 futex_wait_cancelable (private=0, expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
88 ../sysdeps/unix/sysv/linux/futex-internal.h: Datei oder Verzeichnis
nicht gefunden.
(gdb) set backtrace past-main on
(gdb) bt
#0 futex_wait_cancelable (private=0, expected=0, futex_word=0x55794be1f154) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 __pthread_cond_wait_common (abstime=0x0, mutex=0x55794be1ed28,
cond=0x55794be1f128) at pthread_cond_wait.c:502
#2 __pthread_cond_wait (cond=0x55794be1f128, mutex=0x55794be1ed28) at
pthread_cond_wait.c:655
#3 0x000055794b44e27e in gold::Condvar_impl_threads::wait (this=<optimized
out>, li=<optimized out>) at ../../gold/gold-threads.cc:234
#4 0x000055794b50e881 in gold::Condvar::wait (this=0x7ffe8567dda0,
this=0x7ffe8567dda0) at ../../gold/gold-threads.h:170
#5 gold::Workqueue::find_runnable_or_wait (this=this@entry=0x7ffe8567dd70,
thread_number=thread_number@entry=0) at ../../gold/workqueue.cc:272
#6 0x000055794b50ede8 in gold::Workqueue::find_and_run_task
(this=0x7ffe8567dd70, thread_number=0) at ../../gold/workqueue.cc:298
#7 0x000055794b50f55a in gold::Workqueue::process
(this=this@entry=0x7ffe8567dd70, thread_number=thread_number@entry=0) at
../../gold/workqueue.cc:495
#8 0x000055794b40049b in main (argc=<optimized out>, argc@entry=59,
argv=<optimized out>, argv@entry=0x7ffe85687dd8) at ../../gold/main.cc:252
#9 0x00007f13ed94109b in __libc_start_main (main=0x55794b3fff00 <main(int,
char**)>, argc=59, argv=0x7ffe85687dd8, init=<optimized out>, fini=<optimized
out>, rtld_fini=<optimized out>, stack_end=0x7ffe85687dc8) at
../csu/libc-start.c:308
#10 0x000055794b40136a in _start () at ../../gold/parameters.h:86
#
https://stackoverflow.com/questions/9049297/i-have-a-core-dump-of-an-executable-that-was-not-built-with-debug-symbols-can-i
(gdb) up
#10 0x000055794b40136a in _start () at ../../gold/parameters.h:86
86 { return this->options_ != NULL; }
(gdb) disas
Dump of assembler code for function _start:
0x000055794b401340 <+0>: xor %ebp,%ebp
0x000055794b401342 <+2>: mov %rdx,%r9
0x000055794b401345 <+5>: pop %rsi
0x000055794b401346 <+6>: mov %rsp,%rdx
0x000055794b401349 <+9>: and $0xfffffffffffffff0,%rsp
0x000055794b40134d <+13>: push %rax
0x000055794b40134e <+14>: push %rsp
0x000055794b40134f <+15>: lea 0x1e34ba(%rip),%r8 #
0x55794b5e4810 <__libc_csu_fini>
0x000055794b401356 <+22>: lea 0x1e3453(%rip),%rcx #
0x55794b5e47b0 <__libc_csu_init>
0x000055794b40135d <+29>: lea -0x1464(%rip),%rdi #
0x55794b3fff00 <main(int, char**)>
0x000055794b401364 <+36>: callq *0x2a87be(%rip) # 0x55794b6a9b28
=> 0x000055794b40136a <+42>: hlt
End of assembler dump.
(gdb) x/8gx $rsp+8
0x7ffe85687dc8: 0x000000000000001c 0x000000000000003b
0x7ffe85687dd8: 0x00007ffe85689fd5 0x00007ffe85689fe6
0x7ffe85687de8: 0x00007ffe85689fee 0x00007ffe8568a01f
0x7ffe85687df8: 0x00007ffe8568a057 0x00007ffe8568a082
(gdb) print *(((char**)0x7ffe85687dd8)+0)
$24 = 0x7ffe85689fd5 "/usr/bin/ld.gold"
(gdb) print *(((char**)0x7ffe85687dd8)+1)
$25 = 0x7ffe85689fe6 "-plugin"
(gdb) print *(((char**)0x7ffe85687dd8)+2)
$26 = 0x7ffe85689fee "/usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so"
(gdb) print *(((char**)0x7ffe85687dd8)+3)
$27 = 0x7ffe8568a01f "-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper"
(gdb) print *(((char**)0x7ffe85687dd8)+4)
$28 = 0x7ffe8568a057 "-plugin-opt=-fresolution=/tmp/ccfAic5u.res"
(gdb) print *(((char**)0x7ffe85687dd8)+5)
$29 = 0x7ffe8568a082 "-plugin-opt=-pass-through=-lgcc_s"
(gdb) print *(((char**)0x7ffe85687dd8)+6)
$30 = 0x7ffe8568a0a4 "-plugin-opt=-pass-through=-lgcc"
(gdb) print *(((char**)0x7ffe85687dd8)+7)
$31 = 0x7ffe8568a0c4 "-plugin-opt=-pass-through=-lc"
(gdb) print *(((char**)0x7ffe85687dd8)+8)
$32 = 0x7ffe8568a0e2 "-plugin-opt=-pass-through=-lgcc_s"
(gdb) print *(((char**)0x7ffe85687dd8)+9)
$33 = 0x7ffe8568a104 "-plugin-opt=-pass-through=-lgcc"
(gdb) print *(((char**)0x7ffe85687dd8)+10)
$34 = 0x7ffe8568a124 "--build-id"
(gdb) print *(((char**)0x7ffe85687dd8)+11)
$35 = 0x7ffe8568a12f "--eh-frame-hdr"
(gdb) print *(((char**)0x7ffe85687dd8)+12)
$36 = 0x7ffe8568a13e "-m"
(gdb) print *(((char**)0x7ffe85687dd8)+13)
$37 = 0x7ffe8568a141 "elf_x86_64"
(gdb) print *(((char**)0x7ffe85687dd8)+14)
$38 = 0x7ffe8568a14c "--hash-style=gnu"
(gdb) print *(((char**)0x7ffe85687dd8)+15)
$39 = 0x7ffe8568a15d "-dynamic-linker"
(gdb) print *(((char**)0x7ffe85687dd8)+16)
$40 = 0x7ffe8568a16d "/lib64/ld-linux-x86-64.so.2"
(gdb) print *(((char**)0x7ffe85687dd8)+17)
$41 = 0x7ffe8568a189 "-pie"
(gdb) print *(((char**)0x7ffe85687dd8)+18)
$42 = 0x7ffe8568a18e "-o"
(gdb) print *(((char**)0x7ffe85687dd8)+19)
$43 = 0x7ffe8568a191 "../apt-cacher-ng"
...