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.
+1 on the exp-run, please.
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
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.)
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);
See also bug 265516.