Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Jul 2022 13:15:09 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 265516] lang/perl5*: work around duplicate symbol errors with dtrace enabled
Message-ID:  <bug-265516-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D265516

            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 bu=
ild
with clang and lld 15:

cc -pthread -Wl,-E  -fstack-protector-strong -L/usr/local/lib -o miniperl=20
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 260=
947.

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 erro=
rs,
using the --allow-multiple-definition linker flag, which is supported by bo=
th
GN ld and lld.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-265516-7788>