Miroslav Lachman wrote:
Program terminated with signal 4, Illegal instruction.

Tvuj kod:
0x0000000000405c23 <_ZN10BoolStringaSERKS_+35>: mov    BYTE PTR [rsi+0x8],al
0x0000000000405c26 <_ZN10BoolStringaSERKS_+38>: ud2a

Zadna instrukce ud2a neexistuje.

Zbytek je trocha Googleni.

Linux a gcc pouziva u2da jako "instrukci, ktera urcite neexistuje". Kdyz to jeste jednou prelozis, mel bys mezi warningama videt i takovyhle:

warning: cannot pass objects of non-POD type '...' through '...'; call will 
abort at runtime

No, a jak gcc slibilo, tak, podle vseho, take udelalo - program ti abort at runtime. Upgrade gcc / preklad pomoci jine verze gcc asi spis nepomuze, snad jen v tom smyslu, ze od urcite verze dal uz to neni warning ale error a zhavaruje to primo pri prekladu a ne az pri behu.

Podstatou je zdrojovy kod obsahujici konstrukt, jehoz vyznam neni v C++ definovany. GCC se rozhodlo nepokouset se uhadnout co tim autor myslel.

Moje znalost c++ je ovsem spise pasivni, takze cist ho dokazu, ale obavam se, ze nikoliv opravit. To uz bude muset nekdo jiny, klidne autor fastresolve.

Pripadne da se  "neco" zkusit upravit pri te kompilaci, aby to fungovalo?

Otazka je, proc se ti to preklada za pouziti GCC. Me to na 10.2-R preklada systemovy clang a ten konstrukt prelozi (coz jeste neznamena, ze to nakonec bude delat to, co autor zamyslel).

Copak ti napise
( cd /usr/ports/dns/fastresolve ; make -V CC )
a co
$( cd /usr/ports/dns/fastresolve ; make -V CC ) -v

Dan

--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem