On 02/28/16 23:49, Miroslav Lachman wrote:
Zkusil jsem to prelozit s GCC, ale dns-terror stejne segfaultuje a ani mi to
nejde debugovat:
Reading symbols from /usr/local/lib/gcc48/libstdc++.so.6...Error while reading
shared library symbols:
Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in
module /usr/local/lib/gcc48/libstdc++.so.6]
Format debugovacich informaci je na gdb moc novy a neznamy. Jinymi
slovy, prilis nove gcc48 (a DWARF-4 format) na prilis stare gdb.
Bohuzel, nepomuzes si jednoduse ani tak, ze si pri prekladu explicitne
vyzadas starsi verzi (option -gdwarf-2 misto prosteho -g). To sice
zabere na preklady zdrojaku samotnych, ale DWARF-4 debugovaci informace
se do vysledku stejne dostanou - z prilinkovanych knihoven.
Musel bys knihovny gcc48 nejdriv stripnout, aby debugovaci informace
neobsahovaly vubec.
A to uz je snad jednodussi misto gcc 4.8 pouzit gcc 4.7 - ten snad jeste
DWARF-4 neumel.
Myslim, ze ja uz se dal nedostanu
No,porad's to jeste nezkusil zkompilovat s -O optimalizacema. ;-)
Ja uz bych davno ten prelozenej kod projel disassemblerem (a hledal
vyskyt "neexistujici instrukce"), ale nemam vubec vyrobeny builder-stroj
s 10-R v 32bit verzi. A pro 64 bitovej binar zas nemam disassembler.
Taky muzes zkusit ICC misto GCC:
CC= ${LOCALBASE}/intel_cc_80/bin/icc
CXX= ${LOCALBASE}/intel_cc_80/bin/icpc
To ale taky muze byt dost napinava zmena ;-)
kdyz jsem do Makefile ... pridal USE_GCC=yes
... dostane sileny seznam runtime zavislosti:
New packages to be INSTALLED:
gcc: 4.8.5_2 [debug]
indexinfo: 0.2.4 [debug]
mpc: 1.0.3 [codelab]
gmp: 5.1.3_3 [debug]
mpfr: 3.1.3_1 [debug]
binutils: 2.25.1,1 [debug]
gcc-ecj: 4.5 [debug]
Prece tim, ze se na stejny kod pouzije jiny kompilator by se nemel zmenit
seznam runtime zavislosti, ne?
No, tak to samozrejme mel, u dynamicky linkovanejch binaru. Pri behu
potrebujes knihovny, ktere se budou prilinkovavat. V pripade objektoveho
prekladu pomoci gcc 4.8 to nejspis bude minimalne libstdc++.6.so. Coz
znamena zavislost na lang/gcc48
No, a to ostatni jsou uz rekurzivni zavislosti samotneho gcc 4.8. A tech
je tam, pri defaultnim prekladu gcc, dost.
Dan
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l