Skip to content
Commit 4ae8ff94 authored by Dimitry Andric's avatar Dimitry Andric
Browse files

lang/perl5*: work around duplicate symbol errors with lld 15 and dtrace enabled

Building any of the lang/perl5* ports with clang and lld 15, and the
DTRACE option enabled (which is default on) results in link errors
similar to:

    cc -pthread -Wl,-E  -fstack-protector-strong -L/usr/local/lib -o miniperl  mpdtrace/opmini.o mpdtrace/perlmini.o mpdtrace/universalmini.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/builtin.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/globals.o mpdtrace/perlio.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___sub__entry
    >>> defined in mpdtrace/pp_hot.o
    >>> defined in mpdtrace/pp_sort.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___op__entry
    >>> defined in mpdtrace/perlmini.o
    >>> defined in mpdtrace/run.o

    ld: error: duplicate symbol: __dtraceenabled_perl___op__entry
    >>> defined in mpdtrace/perlmini.o
    >>> defined in mpdtrace/dump.o

    ld: error: duplicate symbol: __dtraceenabled_perl___sub__entry
    >>> defined in mpdtrace/pp_hot.o
    >>> defined in mpdtrace/pp_ctl.o
    cc: error: linker command failed with exit code 1 (use -v to see invocation)

Work around these errors by allowing multiple definitions during
linking, using the --allow-multiple-definition linker flag. (Note: this
flag is also supported by GNU ld.)

PR:		265516
Approved by:	maintainer timeout (1 month)
MFH:		2022Q3
parent 0da40873
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment