pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Building www/webkit-gtk: undefined reference to `__divmodti4'

From what I gather from the specs files from g++5 and 7 (from g++ -dumpspecs), 

	%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:--as-needed -lgcc_s --no-as-needed -lgcc}}

	%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared-libgcc:-lgcc --as-needed -lgcc_s --no-as-needed}%{shared-libgcc:-lgcc_s%{!shared: -lgcc}}}}

it is the intention that when a shared library is created, it used a
shared version of libgcc (named Gcc 7 does not seem to
install such a file, but there is one in the base system:

Unfortunately it does not define `__divmodti4' (unlike gcc7's libgcc.a).

So even if gcc7 did install, then it would be a version
incompatible with the base system (and all potential issues following
from that).

(This doesn't quite explain why C includes -lgcc anyway)

The option -static-libgcc turns on the use of libgcc.a:

$P/g++  -v -shared -static-libgcc c.c
	/usr/pkg/gcc7/libexec/gcc/x86_64--netbsd/7.4.0/collect2 -plugin
	-plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lc
	-plugin-opt=-pass-through=-lgcc_eh --eh-frame-hdr -shared
	/usr/lib/crti.o /usr/lib/crtbeginS.o
	-R/usr/pkg/gcc7/x86_64--netbsd/lib/. -R/usr/pkg/gcc7/lib/.
	/var/tmp//cciw8us0.o -lstdc++ -lm -lgcc -lgcc_eh -lc -lgcc
	-lgcc_eh /usr/lib/crtendS.o /usr/lib/crtn.o

so either this option can to be inserted somewhere appropriate, or the
spec file could be rewritten. Or gcc7 could install its own libgcc_s, if
we somehow avoid any troubles from that.

Olaf 'Rhialto' Seibert -- rhialto at falu dot nl
___  Anyone who is capable of getting themselves made President should on
\X/  no account be allowed to do the job.       --Douglas Adams, "THGTTG"

Attachment: signature.asc
Description: PGP signature

Home | Main Index | Thread Index | Old Index