Bug 258872 - [exp-run] WITH_LLVM_BINUTILS
Summary: [exp-run] WITH_LLVM_BINUTILS
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Port Management Team
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-02 18:36 UTC by Shawn Webb
Modified: 2022-07-30 13:17 UTC (History)
7 users (show)

See Also:
tobik: exp-run?


Attachments
Patch setting WITH_LLVM_BINUTILS to yes by default (539 bytes, patch)
2021-10-02 18:36 UTC, Shawn Webb
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Shawn Webb 2021-10-02 18:36:42 UTC
Created attachment 228381 [details]
Patch setting WITH_LLVM_BINUTILS to yes by default

I'd like to request an exp-run with WITH_LLVM_BINUTILS set. I'd like to know which port builds break, if any, on FreeBSD's side.
Comment 1 Alastair Hogge 2021-10-28 09:42:12 UTC
+1 on the exp-run, please.
Comment 2 Antoine Brodin freebsd_committer 2021-10-29 07:21:30 UTC
More than 24000 ports were skipped due to new failures

New failure logs:

http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/postgresql10-client-10.18.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/postgresql11-client-11.13.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/postgresql12-client-12.8.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/postgresql13-client-13.4.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/postgresql14-client-14.0.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/postgresql96-client-9.6.23.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/neo-cowsay-1.0.3.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/perl5-devel-5.35.4.102.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/perl5.30-5.30.3_1.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/perl5-5.32.1_1.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/perl5.34-5.34.0.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/racket-minimal-8.2.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/tcl85-8.5.19_4.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/tcl86-8.6.11_2.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/rump-20170822_2.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/viamillipede-0.89.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/nifticlib-2.0.0_1.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/stressdisk-1.0.12.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/sxml-1.0.7.log
http://gohan04.nyi.freebsd.org/data/main-amd64-PR258872-default/2021-10-28_18h07m08s/logs/errors/gurl-0.2.3.log
Comment 3 Ed Maste freebsd_committer 2021-11-01 14:46:16 UTC
Not surprising Perl failing to build has a huge impact. From perl5.34-5.34.0.log:

cc -pthread -Wl,-E  -fstack-protector-strong -L/usr/local/lib -o miniperl  opmini.o perlmini.o  gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro_core.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o caretx.o dquote.o time64.o  miniperlmain.o  -lpthread -lm -lcrypt -lutil
ld: error: undefined symbol: __dtraceenabled_perl___op__entry
>>> referenced by perlmini.c
>>>               perlmini.o:(perl_destruct)
>>> referenced by perlmini.c
>>>               perlmini.o:(perl_destruct)
>>> referenced by perlmini.c
>>>               perlmini.o:(perl_parse)
>>> referenced 8 more times

ld: error: undefined symbol: __dtrace_perl___sub__entry
>>> referenced by util.c
>>>               util.o:(Perl_dtrace_probe_call)

ld: error: undefined symbol: __dtrace_perl___sub__return
>>> referenced by util.c
>>>               util.o:(Perl_dtrace_probe_call)

ld: error: undefined symbol: __dtrace_perl___loading__file
>>> referenced by util.c
>>>               util.o:(Perl_dtrace_probe_load)

ld: error: undefined symbol: __dtrace_perl___loaded__file
>>> referenced by util.c
>>>               util.o:(Perl_dtrace_probe_load)

ld: error: undefined symbol: __dtrace_perl___op__entry
>>> referenced by util.c
>>>               util.o:(Perl_dtrace_probe_op)
>>> referenced by util.c
>>>               util.o:(Perl_dtrace_probe_op)

ld: error: undefined symbol: __dtrace_perl___phase__change
>>> referenced by util.c
>>>               util.o:(Perl_dtrace_probe_phase)

ld: error: undefined symbol: __dtraceenabled_perl___sub__entry
>>> referenced by pp_hot.c
>>>               pp_hot.o:(Perl_pp_leavesub)
>>> referenced by pp_hot.c
>>>               pp_hot.o:(Perl_pp_entersub)
...


(Aside, `make extract` in lang/perl5.34 had an annoying 30 second sleep after stating it is not the default version -- it seems this ought to be emitted if building, not if only `make extract` or `make patch` was invoked.)
Comment 4 Ed Maste freebsd_committer 2021-11-01 21:11:04 UTC
I had a look at all commands invoked by the perl build, and it seems it uses three tools affected by WITH_LLVM_BINUTILS: ar, strip, objcopy.

Probably the most interesting ones are:

objcopy --localize-hidden dtrace_mini.o
objcopy --localize-hidden dtrace_perllib.o
objcopy --localize-hidden perldtrace.o

     --localize-hidden
             Make all hidden symbols local to the output file.  This includes
             symbols with internal visiblity.

These do not come from the perl build directly - they come from cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c

                asprintf(&cmd, "%s --localize-hidden %s", dtp->dt_objcopy_path,
                    file);
Comment 5 Dimitry Andric freebsd_committer 2022-07-30 13:17:38 UTC
See also bug 265516.