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: 270421 270962 270963 278172 278895 270768 270769 270955 270956 270957 270958 270959 270960 270961 278173 278896
Blocks: 231027
  Show dependency treegraph
 
Reported: 2021-10-02 18:36 UTC by Shawn Webb
Modified: 2024-09-28 13:33 UTC (History)
9 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
not quite committable patch to fix tcl86 and postgresql* (10.20 KB, patch)
2023-04-15 23:30 UTC, Ed Maste
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 freebsd_triage 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 freebsd_triage 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 freebsd_triage 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 freebsd_triage 2022-07-30 13:17:38 UTC
See also bug 265516.
Comment 6 Ed Maste freebsd_committer freebsd_triage 2022-11-30 18:45:34 UTC
--localize-hidden was added in the commit below (and available in 15):

commit 27a29b0290065c44ceab765ac4eb47459bcf1833
Author: Jake Ehrlich <jakehehrlich@google.com>
Date:   Fri Jan 5 19:19:09 2018 +0000

    [llvm-objcopy] Add --localize-hidden option
    
    This change adds support in llvm-objcopy for GNU objcopy's --localize-hidden
    option. This option changes every hidden or internal symbol into a local symbol.
    
    llvm-svn: 321884
Comment 7 Ed Maste freebsd_committer freebsd_triage 2023-03-14 17:40:52 UTC
Can we redo the exp run now that we have Clang 15 in main?
Comment 8 Antoine Brodin freebsd_committer freebsd_triage 2023-03-16 06:39:36 UTC
Around 25k ports were skipped due to new failures.

Some new failure logs:

https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/postgresql11-client-11.19.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/postgresql12-client-12.14.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/postgresql13-client-13.10.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/postgresql14-client-14.7.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/postgresql15-client-15.2.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/perl5-devel-5.37.0.271_2.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/perl5-5.32.1_3.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/perl5.34-5.34.1_2.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/perl5.36-5.36.0_2.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/racket-minimal-8.5_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/tcl85-8.5.19_4.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/tcl86-8.6.13.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/traefik-2.9.8_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/viamillipede-0.89.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/opie-1.20230106.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/samesame-1.10_2.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-03-15_19h12m41s/logs/errors/sxml-1.0.7.log
Comment 9 Ed Maste freebsd_committer freebsd_triage 2023-04-04 13:39:05 UTC
Perl appears to be the same issue as described in comment #3

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
...
Comment 10 commit-hook freebsd_committer freebsd_triage 2023-04-04 18:09:26 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=27f35b7dd418a82cf2f5bb618bd4bb7e81253f3a

commit 27f35b7dd418a82cf2f5bb618bd4bb7e81253f3a
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-04-04 15:21:51 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-04-04 18:08:16 +0000

    libdtrace: Do not set SHF_ALLOC on SUNW_dof relocation sections

    The section will contain static relocations which do not need to be
    preserved after linking, and moreover these relocations may reference
    symbols that end up getting removed.

    Do not set SHF_ALLOC and instead let the linker decide what needs to be
    done.

    PR:             258872
    MFC after:      1 week
    Sponsored by:   The FreeBSD Foundation

 cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Comment 11 Ed Maste freebsd_committer freebsd_triage 2023-04-04 18:41:55 UTC
postgres and tcl have similar errors, of the form

strip: error: '/wrkdirs/usr/ports/databases/postgresql10-client/work/stage/usr/local/lib/_inst.64995_': not stripping symbol '.L.str.2' because it is named in a relocation

---

lang/racket-minimal is curious:

gmake[5]: Entering directory '/wrkdirs/usr/ports/lang/racket-minimal/work/racket-8.5/src/cs/c'
/wrkdirs/usr/ports/lang/racket-minimal/work/stage/usr/local/bin/racket -Z ../../../../../build/config -X "/wrkdirs/usr/ports/lang/racket-minimal/work/stage/usr/local/share/racket/collects" -G "/wrkdirs/usr/ports/lang/racket-minimal/work/stage/usr/local/etc/racket"  -Z ../../../../../build/config  -N "raco" -l- setup --no-user  
malformed fasl-object header in petite
malformed boot file petite
gmake[5]: *** [Makefile:669: do-setup-install] Abort trap (core dumped)

---

cmd/traefik looks like a transitory problem on the build host:

===>  Building traefik from ./cmd/traefik
vendor/github.com/Azure/go-autorest/autorest/adal/token.go:38:2: open /wrkdirs/usr/ports/net/traefik/work/traefik-2.9.8/vendor/github.com/Azure/go-autorest/autorest/date: too many open files
vendor/github.com/akamai/AkamaiOPEN-edgegrid-golang/client-v1/client.go:8:2: open /wrkdirs/usr/ports/net/traefik/work/traefik-2.9.8/vendor/github.com/akamai/AkamaiOPEN-edgegrid-golang/jsonhooks-v1: too many open files

---

net/viamillipede looks like it should also be fixed by 27f35b7dd418

objcopy: error: Link field value 25 in section .rela.SUNW_dof is not a symbol table
dtrace: failed to link script dtrace_viamillipede.d: failed to link dtrace_viamillipede.o: objcopy exited with status 1

---

security/opie is not related:

pam_opie.c:44:10: fatal error: 'opie.h' file not found
#include <opie.h>
         ^~~~~~~~
1 error generated.
*** Error code 1

---

textproc/sxml

===>   Generating temporary packing list
/bin/rm /wrkdirs/usr/ports/textproc/sxml/work/stage/usr/local/lib/libsxml.a
rm: /wrkdirs/usr/ports/textproc/sxml/work/stage/usr/local/lib/libsxml.a: No such file or directory
*** Error code 1 (ignored)
install  -m 0644 libsxml.a /wrkdirs/usr/ports/textproc/sxml/work/stage/usr/local/lib
ranlib -t /wrkdirs/usr/ports/textproc/sxml/work/stage/usr/local/lib/libsxml.a
ranlib: error: Invalid option: '-t'
*** Error code 1

FreeBSD's bespoke ranlib accepts but ignores '-t'

I see it documented elsewhere as
       -t  Update the timestamp of the symbol map of an archive.

---

sysutils/samesame:

c++ -DDEBUG -g -Wall   -DDISK_STORAGE -DEXPERIMENTAL    -DREAD_ONCES -pg -O2 -pipe -fstack-protector-strong -fno-strict-aliasing  -fstack-protector-strong  -o samefile samefile.o main.o  holder.o sizegroup.o  matchmatrix.o storage.o  filegroup.o filename.o  templates.o list.o  container.o list.o  hash.o stats.o  printhardlinked.o write2disk.o  toolkit.o buffer.o  memory.o  
ld: error: undefined symbol: eprol
>>> referenced by crt1_c.c:49 (/poudriere/jails/mainamd64PR258872/usr/src/lib/csu/amd64/crt1_c.c:49)
>>>               /usr/lib/gcrt1.o:(_start)
c++: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1
Comment 12 Ed Maste freebsd_committer freebsd_triage 2023-04-04 18:43:56 UTC
With Mark's change in 27f35b7dd418 at least perl, tcl, postgres should build, which should address the bulk of the skipped ports. I'd thus like to request another exp-run.
Comment 13 Ed Maste freebsd_committer freebsd_triage 2023-04-05 14:01:29 UTC
(In reply to Ed Maste from comment #12)
I believe tcl and postgres will build, but fail during stage.

tcl is invoking `strip -x` on a .a and the error can be reproduced as:

# strip -o /dev/null -x libtclstub86.a 
strip: error: 'libtclstub86.a': not stripping symbol '.L.str.1' because it is named in a relocation

https://github.com/llvm/llvm-project/issues/47468
Comment 14 Antoine Brodin freebsd_committer freebsd_triage 2023-04-07 06:35:57 UTC
Some new failure logs:

https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/postgresql11-client-11.19.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/postgresql12-client-12.14.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/postgresql13-client-13.10.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/postgresql14-client-14.7.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/postgresql15-client-15.2.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/melonds-qt5-0.9.4_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/racket-minimal-8.5_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/tcl85-8.5.19_4.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/tcl86-8.6.13.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/tcl87-8.7.a5_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/trlan-201009_11.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/astc-encoder-4.4.0.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/netdata-1.38.1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/trafshow-5.2.3_3,1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/q-6.0.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/dsniff-2.4.b1_8.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/opie-1.20230106.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/bash-static-5.2.15.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/stressdisk-1.0.12_11.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/sxml-1.0.7.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-05_14h36m44s/logs/errors/deno-1.32.3.log

more than 5k ports were skipped due to those failures
Comment 15 Ed Maste freebsd_committer freebsd_triage 2023-04-10 19:19:57 UTC
trafshow looks unrelated

cc -O2 -pipe  -DINET6 -fstack-protector-strong -fno-strict-aliasing  -Wall -I. -DHAVE_CONFIG_H -c trafshow.c
trafshow.c:63:12: error: static declaration of 'pcap_init' follows non-static declaration
static int pcap_init(PCAP_HANDLER **ph_list, pcap_if_t *dp);
           ^
/usr/include/pcap/pcap.h:386:14: note: previous declaration is here
PCAP_API int    pcap_init(unsigned int, char *);
                ^
trafshow.c:177:22: error: incompatible pointer to integer conversion passing 'PCAP_HANDLER **' (aka 'struct pcap_handler **') to parameter of type 'unsigned int' [-Wint-conversion]
        if ((op = pcap_init(&ph_list, dev_list)) < 1) {
                            ^~~~~~~~
...
                                              ^
Comment 16 commit-hook freebsd_committer freebsd_triage 2023-04-11 14:11:09 UTC
A commit in branch stable/13 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=f22bd73428ddff199ee3f4554df2bf761bed5aba

commit f22bd73428ddff199ee3f4554df2bf761bed5aba
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-04-04 15:21:51 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-04-11 14:10:24 +0000

    libdtrace: Do not set SHF_ALLOC on SUNW_dof relocation sections

    The section will contain static relocations which do not need to be
    preserved after linking, and moreover these relocations may reference
    symbols that end up getting removed.

    Do not set SHF_ALLOC and instead let the linker decide what needs to be
    done.

    PR:             258872
    MFC after:      1 week
    Sponsored by:   The FreeBSD Foundation

    (cherry picked from commit 27f35b7dd418a82cf2f5bb618bd4bb7e81253f3a)

 cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Comment 17 Ed Maste freebsd_committer freebsd_triage 2023-04-12 20:01:19 UTC
Continuing down the list, lang/ldc (27 skipped):

FAILED: CMakeFiles/LDCShared.dir/gen/aa.cpp.o 
/usr/local/bin/clang++13 -DLDC_ENABLE_PLUGINS -DLDC_LLVM_SUPPORTED_TARGET_AArch64=1 -DLDC_LLVM_SUPPORTED_TARGET_AMDGPU=1 -DLDC_LLVM_SUPPORTED_TARGET_ARM=1 -DLDC_LLVM_SUPPORTED_TARGET_AVR=1 -DLDC_LLVM_SUPPORTED_TARGET_BPF=1 -DLDC_LLVM_SUPPORTED_TARGET_Hexagon=1 -DLDC_LLVM_SUPPORTED_TARGET_Lanai=1 -DLDC_LLVM_SUPPORTED_TARGET_MSP430=1 -DLDC_LLVM_SUPPORTED_TARGET_Mips=1 -DLDC_LLVM_SUPPORTED_TARGET_NVPTX=1 -DLDC_LLVM_SUPPORTED_TARGET_PowerPC=1 -DLDC_LLVM_SUPPORTED_TARGET_RISCV=1 -DLDC_LLVM_SUPPORTED_TARGET_Sparc=1 -DLDC_LLVM_SUPPORTED_TARGET_SystemZ=1 -DLDC_LLVM_SUPPORTED_TARGET_WebAssembly=1 -DLDC_LLVM_SUPPORTED_TARGET_X86=1 -DLDC_LLVM_SUPPORTED_TARGET_XCore=1 -DLDC_MLIR_ENABLED -I/usr/local/llvm13/include -I/wrkdirs/usr/ports/lang/ldc/work/ldc-1.30.0-src/. -I/wrkdirs/usr/ports/lang/ldc/work/ldc-1.30.0-src/dmd -O2 -pipe -fPIC -fstack-protector-strong -fno-strict-aliasing -DDMDV2 -O2 -pipe -fPIC -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -I/usr/local/llvm13/include -std=c++14   -fno-exceptions -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti  -Wall -Wextra -Wno-unused-parameter -Wno-comment -Wno-missing-field-initializers -Wno-non-virtual-dtor -Wno-gnu-anonymous-struct -Wno-nested-anon-types -Wno-gnu-redeclared-enum -Wno-unused-private-field -Wno-undefined-var-template -fvisibility-inlines-hidden -DLDC_POSIX  -DIN_LLVM -DOPAQUE_VTBLS "-DLDC_INSTALL_PREFIX=R\"(/usr/local)\"" -DLDC_LLVM_VER=1300 "-DLDC_LIBDIR_SUFFIX=R\"()\"" -DLDC_HOST_GDMD=1 -DLDC_HOST_FE_VER=<stdin> "-DLDC_LLVM_LIBDIR=R\"(/usr/local/llvm13/lib)\"" -DLDC_WITH_LLD  -DNDEBUG -MD -MT CMakeFiles/LDCShared.dir/gen/aa.cpp.o -MF CMakeFiles/LDCShared.dir/gen/aa.cpp.o.d -o CMakeFiles/LDCShared.dir/gen/aa.cpp.o -c /wrkdirs/usr/ports/lang/ldc/work/ldc-1.30.0-src/gen/aa.cpp
/bin/sh: cannot open stdin: No such file or directory
ninja: build stopped: subcommand failed.
*** Error code 1

Not sure what is going on here, does not look directly related but could be a second-order effect.

===========================================================

devel/leatherman (7 skipped) looks unrelated

In file included from /wrkdirs/usr/ports/devel/leatherman/work/.build/src/Catch-1.10.0/single_include/catch.hpp:383:
In file included from /usr/include/c++/v1/sstream:186:
In file included from /usr/include/c++/v1/istream:165:
In file included from /usr/include/c++/v1/ostream:168:
In file included from /usr/include/c++/v1/bitset:128:
In file included from /usr/include/c++/v1/string:551:
In file included from /usr/include/c++/v1/string_view:222:
In file included from /usr/include/c++/v1/algorithm:1851:
In file included from /usr/include/c++/v1/__algorithm/ranges_sample.h:13:
In file included from /usr/include/c++/v1/__algorithm/sample.h:18:
/usr/include/c++/v1/__random/uniform_int_distribution.h:235:5: error: static assertion failed due to requirement '__libcpp_random_is_valid_urng<Catch::RandomNumberGenerator, void>::value': 
    static_assert(__libcpp_random_is_valid_urng<_URNG>::value, "");
    ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/__algorithm/shuffle.h:154:35: note: in instantiation of function template specialization 'std::uniform_int_distribution<long>::operator()<Catch::RandomNumberGenerator>' requested here
            difference_type __i = __uid(__g, _Pp(0, __d));
                                  ^
/usr/include/c++/v1/__algorithm/shuffle.h:166:14: note: in instantiation of function template specialization 'std::__shuffle<std::_ClassicAlgPolicy, std::__wrap_iter<Catch::TestCase *>, std::__wrap_iter<Catch::TestCase *>, Catch::RandomNumberGenerator &>' requested here
  (void)std::__shuffle<_ClassicAlgPolicy>(
             ^
/wrkdirs/usr/ports/devel/leatherman/work/.build/src/Catch-1.10.0/single_include/catch.hpp:7242:18: note: in instantiation of function template specialization 'std::shuffle<std::__wrap_iter<Catch::TestCase *>, Catch::RandomNumberGenerator &>' requested here
            std::shuffle( vector.begin(), vector.end(), rng );
                 ^
/wrkdirs/usr/ports/devel/leatherman/work/.build/src/Catch-1.10.0/single_include/catch.hpp:7260:44: note: in instantiation of function template specialization 'Catch::RandomNumberGenerator::shuffle<std::vector<Catch::TestCase>>' requested here
                    RandomNumberGenerator::shuffle( sorted );
                                           ^
1 error generated.

===========================================================

databases/postgresql14-client (5 skipped)
databases/postgresql12-client (4 skipped)
databases/postgresql15-client (4 skipped)
databases/postgresql11-client (4 skipped)

same as PR270769

===========================================================

devel/libexplain (4 skipped) looks unrelated

libexplain/buffer/errno/acl_set_file.c:198:64: error: incompatible integer to pointer conversion passing 'long' to parameter of type 'const char *' [-Wint-conversion]
                    explain_string_buffer_printf(" (%d > %d)", num, max);
                                                               ^~~

===========================================================

lang/tcl87 (3 skipped)
lang/tcl85 (2 skipped)

same as PR270768

===========================================================

math/spooles (2 skipped) looks unrelated:

transform.c:294:23: error: incompatible pointer to integer conversion passing 'void *' to parameter of type 'int' [-Wint-conversion]
temp = IVinit(nfront, NULL) ;
                      ^~~~
/usr/include/sys/_null.h:34:14: note: expanded from macro 'NULL'
#define NULL    ((void *)0)
                ^~~~~~~~~~~
./../../Utilities/IV.h:139:10: note: passing argument to parameter 'ival' here
   int   ival 
         ^

===========================================================

a bunch more in the list with 2 skipped that all seem unrelated

===========================================================

In summary: tcl and postgresql are the only significant failures responsible for skipped ports. Other than those two any failing ports are either leaf ports or cause only one skipped port.
Comment 18 Ed Maste freebsd_committer freebsd_triage 2023-04-15 23:30:10 UTC
Created attachment 241521 [details]
not quite committable patch to fix tcl86 and postgresql*

Attached patch should address tcl86 and postgresql*.

These are not necessarily the changes that will be committed, but should at least allow these ports to build and thus allow us to determine which if any of the previously skipped ports still have issues.
Comment 19 Antoine Brodin freebsd_committer freebsd_triage 2023-04-20 17:24:44 UTC
New failure logs:

https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/melonds-qt6-0.9.4_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/melonds-qt5-0.9.4_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/libjxl-0.8.1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/racket-8.5_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/racket-minimal-8.5_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/tcl85-8.5.19_4.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/tcl87-8.7.a5_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/trlan-201009_11.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/astc-encoder-4.4.0.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/mtx-1.3.12_1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/netdata-1.38.1.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/q-6.0.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/bash-static-5.2.15.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/stressdisk-1.0.12_12.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/sxml-1.0.7.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/tk86-8.6.13.log
https://pkg-status.freebsd.org/gohan05/data/mainamd64PR258872-default/2023-04-17_22h40m57s/logs/errors/cde-devel-2023.04.01.log


Around 1000 ports were skipped due to graphics/libjxl and around 1000 ports were skipped due to 	x11-toolkits/tk86
Comment 20 Ed Maste freebsd_committer freebsd_triage 2023-04-20 18:21:09 UTC
Thanks Antoine.

misc/mtx looks unrelated:

In file included from mtx.c:39:
./mtx.h:225:16: error: expected identifier
typedef enum { false, true } boolean;
               ^
/usr/include/stdbool.h:36:15: note: expanded from macro 'false'
#define false   0
                ^
In file included from mtx.c:39:
./mtx.h:225:23: error: expected identifier
typedef enum { false, true } boolean;
                      ^
/usr/include/stdbool.h:37:14: note: expanded from macro 'true'
#define true    1
                ^
2 errors generated.
gmake[1]: *** [<builtin>: mtx.o] Error 1
gmake[1]: Leaving directory '/wrkdirs/usr/ports/misc/mtx/work/mtx-1.3.12'
*** Error code 1

x11/cde-devel also appears unrelated:

configure: error: Please install the following REQUIRED programs: SESSREG 
===>  Script "configure" failed unexpectedly.
Please report the problem to cy@FreeBSD.org [maintainer] and attach the
"/wrkdirs/usr/ports/x11/cde-devel/work/cdesktopenv-code-ece21debb/cde/config.log"
including the output of the failure of your make command. Also, it might be
a good idea to provide an overview of all packages installed on your system
(e.g. a /usr/local/sbin/pkg-static info -g -Ea).
*** Error code 1

lang/racket is not immediately clear:

gmake[5]: Entering directory '/wrkdirs/usr/ports/lang/racket/work/racket-8.5/src/cs/c'
/wrkdirs/usr/ports/lang/racket/work/stage/usr/local/bin/racket -Z ../../../../../build/config -X "/wrkdirs/usr/ports/lang/racket/work/stage/usr/local/share/racket/collects" -G "/wrkdirs/usr/ports/lang/racket/work/stage/usr/local/etc/racket"  -Z ../../../../../build/config  -N "raco" -l- setup --no-user  
malformed fasl-object header in petite
malformed boot file petite
gmake[5]: *** [Makefile:669: do-setup-install] Abort trap (core dumped)

This could possibly be a 2nd order effect of some difference in objcopy output or similar. Adding olgeni@ to CC for possible comment.

PRs opened for all of the remaining issues. tk86 is presumably a similar fix to tcl86. graphics/libjxl will need some investigation.
Comment 21 Ed Maste freebsd_committer freebsd_triage 2023-04-21 18:30:37 UTC
llvm objcopy/strip bugs:
https://github.com/llvm/llvm-project/labels/tools%3Allvm-objcopy%2Fstrip
Comment 22 Evgenii Khramtsov 2023-05-23 06:02:58 UTC
See also bug 270421 (I can't add to "Depends on" here).
Comment 23 Ed Maste freebsd_committer freebsd_triage 2024-03-26 00:41:08 UTC
We've had a number of port fixes land, and we have Clang/LLVM 17 in the base system now (which has fixed at least some strip/objcopy/other tools bugs).

Can I request another exp-run to see where things stand now?
Comment 25 Ed Maste freebsd_committer freebsd_triage 2024-04-04 16:38:33 UTC
https://github.com/llvm/llvm-project/issues/87654 for games/ponscripter-07th-mod
Comment 26 Ed Maste freebsd_committer freebsd_triage 2024-04-04 16:42:33 UTC
misc/rump is looking for "GNU" or "BSD" in the output of ar -V
IMO this should be addressed upstream rather than perpetuating the user-agent-like hack we've done in lld (which adds "compatible with GNU linkers" in the version output)

# For ar, we just check the --version.  Works so far.  If it breaks,
# need to start building archives ...
probear ()
{

        # Check for GNU/BSD ar
        if ! ${AR} -V 2>/dev/null | egrep '(GNU|BSD) ar' > /dev/null ; then
                die Need GNU or BSD ar "(`type ${AR}`)"
        fi
}
Comment 27 Ed Maste freebsd_committer freebsd_triage 2024-05-10 15:23:54 UTC
tcl addressed via PR270768
PR278896 for misc/rump

Everything from comment #24 has a PR now.
Comment 28 commit-hook freebsd_committer freebsd_triage 2024-06-10 15:51:11 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=0e34d099309687f19420c615c5c56c032f30119d

commit 0e34d099309687f19420c615c5c56c032f30119d
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-06-10 15:45:41 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-06-10 15:50:32 +0000

    Add WITHOUT_LLVM_BINUTILS src.conf description

    Before FreeBSD 15 I plan to switch to LLVM_BINUTILS by default.  Add the
    src.conf description now, for the benefit of downstream branches and
    testing/CI.

    PR:             258872 [exp-run]
    Sponsored by:   The FreeBSD Foundation

 tools/build/options/WITHOUT_LLVM_BINUTILS (new) | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)