[Bug 265516] lang/perl5*: work around duplicate symbol errors with dtrace enabled
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 30 Jul 2022 13:15:09 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265516 Bug ID: 265516 Summary: lang/perl5*: work around duplicate symbol errors with dtrace enabled Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: Individual Port(s) Assignee: mat@FreeBSD.org Reporter: dim@FreeBSD.org Flags: maintainer-feedback?(mat@FreeBSD.org) Assignee: mat@FreeBSD.org During an exp-run for llvm 15 (see bug 265425), it turned out that lang/perl5.32, lang/perl5.34, lang/perl5.36 and lang/perl5-devel fail to build with clang and lld 15: cc -pthread -Wl,-E -fstack-protector-strong -L/usr/local/lib -o miniperl mpdtrace/opmini.o mpdtrace/perlmini.o mpdtrace/gv.o mpdtrace/toke.o mpdtrace/perly.o mpdtrace/pad.o mpdtrace/regcomp.o mpdtrace/dump.o mpdtrace/util.o mpdtrace/mg.o mpdtrace/reentr.o mpdtrace/mro_core.o mpdtrace/keywords.o mpdtrace/hv.o mpdtrace/av.o mpdtrace/run.o mpdtrace/pp_hot.o mpdtrace/sv.o mpdtrace/pp.o mpdtrace/scope.o mpdtrace/pp_ctl.o mpdtrace/pp_sys.o mpdtrace/doop.o mpdtrace/doio.o mpdtrace/regexec.o mpdtrace/utf8.o mpdtrace/taint.o mpdtrace/deb.o mpdtrace/universal.o mpdtrace/globals.o mpdtrace/perlio.o mpdtrace/perlapi.o mpdtrace/numeric.o mpdtrace/mathoms.o mpdtrace/locale.o mpdtrace/pp_pack.o mpdtrace/pp_sort.o mpdtrace/caretx.o mpdtrace/dquote.o mpdtrace/time64.o mpdtrace/miniperlmain.o dtrace_mini.o -lpthread -lm -lcrypt -lutil ld: error: duplicate symbol: __dtraceenabled_perl___op__entry >>> defined in mpdtrace/perlmini.o >>> defined in mpdtrace/dump.o ld: error: duplicate symbol: __dtraceenabled_perl___op__entry >>> defined in mpdtrace/perlmini.o >>> defined in mpdtrace/run.o ld: error: duplicate symbol: __dtraceenabled_perl___sub__entry >>> defined in mpdtrace/pp_hot.o >>> defined in mpdtrace/pp_ctl.o ld: error: duplicate symbol: __dtraceenabled_perl___sub__entry >>> defined in mpdtrace/pp_hot.o >>> defined in mpdtrace/regexec.o ld: error: duplicate symbol: __dtraceenabled_perl___sub__entry >>> defined in mpdtrace/pp_hot.o >>> defined in mpdtrace/pp_sort.o cc: error: linker command failed with exit code 1 (use -v to see invocation) *** Error code 1 This error pops up in more bug reports, for instance bug 258872 and bug 260947. It seems that dtrace does something to the object files produced during the build, if the DTRACE option is enabled (which it is by default). Whatever it does, it causes these multiply defined symbols, which only appear to occur in certain (as of yet) undetermined circumstances. I would like to get the ports going again by working around these link errors, using the --allow-multiple-definition linker flag, which is supported by both GN ld and lld. -- You are receiving this mail because: You are the assignee for the bug.