Description
Xin LI
2022-09-05 06:19:13 UTC
Created attachment 236386 [details]
Patch to modify qsort_r API to use GNU (POSIX) interface
Revised version of patch; it should be functionality-identical and only touches qsort_b, which should be relatively rare.
Created attachment 236388 [details]
Patch to modify qsort_r API to use GNU (POSIX) interface
Apparently I got confused today. The old patch was just fine.
FYI there was a similar exp-run requested a few years ago, in bug #231256 (In reply to Antoine Brodin from comment #3) Hi, thanks for the pointer. Since it has been a few years, can we request a new one so we get an idea on how good (or bad) the current ports tree would react with the change? Created attachment 236389 [details] Patch for textproc/raptor2 Patch from bug 231256 for textproc/raptor2 (In reply to Xin LI from comment #4) Yes I will do it Some failure logs: http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/cyrus-imapd34-http-3.4.4.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/e2fsprogs-1.46.5_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/e2fsprogs-nobootfsck-1.46.5_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/e2fsprogs-roothardlinks-1.46.5_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/firebird30-client-3.0.7_2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/hashcat-6.2.6,1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/iowow-1.4.14.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/libsolv-0.7.22.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/lsp-plugins-lv2-1.2.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/mesa-devel-22.2.b.1696.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/mesa-libs-21.3.8.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/mlmmj-webview-0.0.6.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/nlopt-2.7.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/pointcloud-1.2.2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/py39-nlopt-2.7.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/ruby-3.0.4_2,1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/ruby27-2.7.6_2,1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/ruby31-3.1.2_1,1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/ruby32-3.2.0.p1_2,1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/singular-4.3.1_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/synthpod-lv2-g20190407_2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/timbre-mill-0.5.6.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-06_09h13m56s/logs/errors/tvheadend-4.2.8_6.log With ruby and mesa-libs failing, around 5k ports were newly skipped Created attachment 236429 [details] Proposed patch for ruby Review at: https://reviews.freebsd.org/D36492; Upstream pull request at: https://github.com/ruby/ruby/pull/6332 Some failures logs: http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/cyrus-imapd34-http-3.4.4.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/e2fsprogs-1.46.5_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/e2fsprogs-nobootfsck-1.46.5_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/e2fsprogs-roothardlinks-1.46.5_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/far2l-2.4.0_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/firebird30-client-3.0.7_2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/hashcat-6.2.6,1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/iowow-1.4.14.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/libsolv-0.7.22.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/lsp-plugins-lv2-1.2.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/mesa-devel-22.2.b.1826.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/mesa-libs-21.3.8.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/mlmmj-webview-0.0.6.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/nlopt-2.7.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/pointcloud-1.2.2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/py39-nlopt-2.7.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/singular-4.3.1_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/synthpod-lv2-g20190407_2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/timbre-mill-0.5.6.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-08_07h33m46s/logs/errors/tvheadend-4.2.8_6.log Around 2300 ports were newly skipped due to failures, graphics/mesa-libs causing more than 2200 of them (In reply to Antoine Brodin from comment #9) Thanks, I'll take a look at graphics/mesa-libs (I _think_ I have a fix for that, but poudriere decides that the clang 14.0 bundled with base is not sufficient and went ahead to build llvm13 from port, so it would take a little bit more time)... A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=b4b8c98857e409dd294fd58680cd05ae71893261 commit b4b8c98857e409dd294fd58680cd05ae71893261 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2022-09-10 06:31:50 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2022-09-10 06:31:51 +0000 lang/ruby{27,30,31,32}: Improve qsort_r() detection. This change merges the following upstream pull request into the Ruby interpreter: https://github.com/ruby/ruby/pull/6332 Adding this patch is no-op right now because we are not using POSIX (GNU) qsort_r(3) interface yet. It will fix build when the change is applied. Reviewed by: bapt (portmgr@), sunpoet (ruby@) PR: ports/266227 MFH: 2022Q3 Differential Revision: https://reviews.freebsd.org/D36492 lang/ruby27/files/patch-util.c (new) | 29 +++++++++++++++++++++++++++++ lang/ruby30/files/patch-util.c (new) | 29 +++++++++++++++++++++++++++++ lang/ruby31/files/patch-util.c (new) | 29 +++++++++++++++++++++++++++++ lang/ruby32/files/patch-util.c (new) | 29 +++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+) A commit in branch 2022Q3 references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=1785b9ca4f4e2092bd8b485f94196e1d66eadcf8 commit 1785b9ca4f4e2092bd8b485f94196e1d66eadcf8 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2022-09-10 06:31:50 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2022-09-10 06:32:54 +0000 lang/ruby{27,30,31,32}: Improve qsort_r() detection. This change merges the following upstream pull request into the Ruby interpreter: https://github.com/ruby/ruby/pull/6332 Adding this patch is no-op right now because we are not using POSIX (GNU) qsort_r(3) interface yet. It will fix build when the change is applied. Reviewed by: bapt (portmgr@), sunpoet (ruby@) PR: ports/266227 MFH: 2022Q3 Differential Revision: https://reviews.freebsd.org/D36492 (cherry picked from commit b4b8c98857e409dd294fd58680cd05ae71893261) lang/ruby27/files/patch-util.c (new) | 29 +++++++++++++++++++++++++++++ lang/ruby30/files/patch-util.c (new) | 29 +++++++++++++++++++++++++++++ lang/ruby31/files/patch-util.c (new) | 29 +++++++++++++++++++++++++++++ lang/ruby32/files/patch-util.c (new) | 29 +++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+) Created attachment 236470 [details] Proposed patch for graphics/mesa-dri Add a proposed patch for graphics/mesa-dri; submitted an upstream merge request at https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18527 which is slightly different due to branch divergence. Created attachment 236483 [details]
Proposed patch for sysutils/e2fsprogs
Created attachment 236507 [details]
Patch to modify qsort_r API to use GNU (POSIX) interface
I've revised the patch a little bit (main change was for stdlib.h by changing the behavior from breaking applications that called FreeBSD style comparator to just route the call to the compatibility symbol as if the code was compiled for an earlier FreeBSD release; the rest was test cases added to validate the compatibility symbol was doing the right thing). This will fix some of ports broken by the change.
New failure logs with the previous src patch: http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/cyrus-imapd34-http-3.4.4.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/far2l-2.4.0_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/firebird30-client-3.0.7_2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/hashcat-6.2.6,1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/iowow-1.4.14.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/libsolv-0.7.22.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/lsp-plugins-lv2-1.2.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/mesa-devel-22.2.b.1915.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/mlmmj-webview-0.0.6.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/nlopt-2.7.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/orange3-3.29.1_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/pointcloud-1.2.2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/py39-nlopt-2.7.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/singular-4.3.1_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/stellarsolver-2.3.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/synthpod-lv2-g20190407_2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/timbre-mill-0.5.6.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/tvheadend-4.2.8_6.log math/nlopt caused 26 skipped (In reply to Antoine Brodin from comment #16) By "previous" did you mean the earlier version (2022-09-06 06:15 UTC), or the latest version (2022-09-12 02:02 UTC)? For example: http://gohan05.nyi.freebsd.org/data/mainamd64PR266227-default/2022-09-12_17h35m40s/logs/errors/mlmmj-webview-0.0.6.log Gave me: ===> Building for mlmmj-webview-0.0.6 cc -Wall -Wextra -std=gnu99 -D_GNU_SOURCE=1 -MT mlmmj-webview.o -MD -MP -MF mlmmj-webview.Tpo -o mlmmj-webview.o -c -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -I/usr/local/include -I/usr/local/include -Werror=implicit-function-declaration -Werror=return-type -I/wrkdirs/usr/ports/mail/mlmmj-webview/work/mlmmj-webview mlmmj-webview.c mlmmj-webview.c:251:3: error: called object type 'int' is not a function or function pointer qsort_r(names, numitems, sizeof(struct dirent *), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/stdlib.h:345:48: note: expanded from macro 'qsort_r' __calling_qsort_r_incorrectly, qsort_r)(base, nel, width, compar, arg) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ which appears to be building against the older patch, and should be gone with the latest version of patch. (mesa-devel was similar to mesa-dri which I'll create a patch). (In reply to Xin LI from comment #17) By previous patch, I meant the one from comment #2 (In reply to Xin LI from comment #14) e2fsprogs - I am scratching my head over this, especially over the detection and the "defined qsort_r" part gives me the creeps. It nicely shows the distress to tell one qsort_r interface from another. Besides that, the qsort_r standardization attempt is ill-advised. C11 already has qsort_s (but it apparently has not made it into POSIX 2018) and I wonder where GNU libc's implementation is... Fedora 36 apparently does not carry one, and rather than standardizing on an implementation that is behind, they bless qsort_r()? Wow. Do we really need to jump the gun? What are our FreeBSD 14 and the POSIX schedules, will we have all the other things in place when we flip the switch for qsort_r to use the GNU API? I am undecided. Please help me decide, and either propose a better auto-detection (ideally one I can forward upstream) or otherwise convince me we are not shooting our feet here. (In reply to Matthias Andree from comment #19) > e2fsprogs - I am scratching my head over this, especially over the detection > and the "defined qsort_r" part gives me the creeps. It nicely shows the > distress to tell one qsort_r interface from another. I agree. This is meant to be a stop-gap solution: once the change of qsort_r landed, we will have a new __FreeBSD_version which can be used for the detection. Another potentially better solution would be to have the configure script to: 1. Detect if there is a qsort_r, and 2. When it does, have two C programs with "#include <stdlib.h>" followed by BSD and GNU definition signatures, and compile; if the compilation succeeded, the corresponding variant was used and define HAVE_{GNU,BSD}_QSORT_R accordingly. And change the code to use the HAVE_{GNU,BSD}_QSORT_R definition. > Besides that, the qsort_r standardization attempt is ill-advised. C11 already > has qsort_s (but it apparently has not made it into POSIX 2018) and I wonder > where GNU libc's implementation is... Fedora 36 apparently does not carry one, > and rather than standardizing on an implementation that is behind, they bless > qsort_r()? Wow. Well, the crazy part of qsort_s is that the Microsoft version (https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/qsort-s?view=msvc-170) is also slightly, but incompatibly different from C11 qsort_s. We have adopted the C11 signature. > Do we really need to jump the gun? What are our FreeBSD 14 and the POSIX > schedules, will we have all the other things in place when we flip the switch > for qsort_r to use the GNU API? I think yes. It's clear that the GNU API have been adopted by more software nowadays. The problem was created by glibc maintainers, yes, and I don't like their API either, but making software developer's life easier on FreeBSD would benefit us more in long term. New failures logs with the src patch from comment #15 and the ports patches: http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/far2l-2.4.0_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/firebird30-client-3.0.7_2.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/hashcat-6.2.6,1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/iowow-1.4.14.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/lsp-plugins-lv2-1.2.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/mesa-devel-22.2.b.2060.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/pointcloud-1.2.3.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/singular-4.3.1_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/stellarsolver-2.3.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v2-default/2022-09-13_10h03m01s/logs/errors/timbre-mill-0.5.6.log Created attachment 236621 [details]
Proposed patch for graphics/mesa-devel
Comment on attachment 236621 [details] Proposed patch for graphics/mesa-devel > graphics/mesa-devel: Improve qsort_r detection. Commit message are supposed to answer "why?", so this should be "graphics/mesa-devel: unbreak on -CURRENT after <hash or reason>". > This change is upstreamed as https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18527 > but not yet merged. Move MR link into patch header and paste error excerpt into the commit message body. Alternatively, leverage PATCHFILES like other upstreamed changes. A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=b3fbc0c3d48c5e1cc7ac2e87e3ee1f847120bfab commit b3fbc0c3d48c5e1cc7ac2e87e3ee1f847120bfab Author: Jan Beich <jbeich@FreeBSD.org> AuthorDate: 2022-09-17 07:47:03 +0000 Commit: Jan Beich <jbeich@FreeBSD.org> CommitDate: 2022-09-17 11:09:03 +0000 graphics/mesa-devel: unbreak on -CURRENT after GNU qsort_r In file included from ../src/util/u_qsort.cpp:24: ../src/util/u_qsort.h:68:4: error: no matching function for call to 'qsort_r' qsort_r(base, nmemb, size, &data, util_qsort_adapter); ^~~~~~~ /usr/include/stdlib.h:314:7: note: candidate function not viable: no known conversion from 'struct util_qsort_adapter_data *' to 'int (*)(const void *, const void *, void *)' for 4th argument void qsort_r(void *, size_t, size_t, ^ PR: 266227 Reported by: antoine (via exp-run) Submitted by: delphij graphics/mesa-devel/Makefile | 1 + graphics/mesa-devel/distinfo | 2 ++ 2 files changed, 3 insertions(+) Created attachment 236638 [details]
Proposed patch for misc/far2l
databases/firebird30-client: the port doesn't build on 13-amd64, and the code doesn't appear to be using qsort_r anywhere, so I think it's unrelated. Created attachment 236643 [details]
Proposed patch for security/hashcat
Created attachment 236644 [details]
Proposed patch for databases/iowow
Created attachment 236652 [details]
Proposed patch for databases/pointcloud
Created attachment 236678 [details]
Patch (v3) to modify qsort_r API to use GNU (POSIX) interface
Hi, could you please do another exp-run with this patch? It would add a compatibility shim for C++ code (similar to the _Generic for C code) which should more legacy code work without modification.
Failure logs with src patch version 3 + the ports patches: http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/dbixx-0.0.4_3.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/ejdb-2.72.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/higan-106_9.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/libretro-px68k-0.20220311.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/libretro-reicast-0.20201231_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/mcmc-jags-4.3.1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/rawtherapee-5.8_13.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/reicast-0.20201231_1.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/stellarsolver-2.3.log http://gohan05.nyi.freebsd.org/data/mainamd64PR266227v3-default/2022-09-19_07h46m04s/logs/errors/yuzu-s20220721_1.log Created attachment 236744 [details]
Patch (v4) to modify qsort_r API to use GNU (POSIX) interface
Looks like GCC really wanted us to explicitly say extern "C++". I have done some local builds on the new breakages (some of these are due to sort_r library, which I'll fix separately on my Friday or weekend) as well as using C++ test program to verify that the linker would use the correct symbol for LLVM and GCC.
Could you please start another exp-run with this patch? Thanks in advance!
Created attachment 236760 [details]
Proposed patch for databases/ejdb
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=dca15813a52d4a44c7a76ad28a7c1b75a1392334 commit dca15813a52d4a44c7a76ad28a7c1b75a1392334 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2022-09-25 05:39:15 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2022-09-25 05:39:16 +0000 astro/stellarsolver: Upgrade to 2.4 and fix build on -CURRENT with GNU qsort_r. PR: ports/266227, ports/266574 Reported by: antoine (via exp-run) Approved by: maintainer (acm@) astro/stellarsolver/Makefile | 2 +- astro/stellarsolver/distinfo | 6 +- .../stellarsolver/files/patch-CMakeLists.txt (new) | 49 ++++++++++++++ ...ch-stellarsolver_astrometry_os-features.h (new) | 11 ++++ ...solver_astrometry_util_os-features-test.c (new) | 75 ++++++++++++++++++++++ .../files/patch-stellarsolver_stellarsolver.cpp | 4 +- astro/stellarsolver/pkg-plist | 9 +-- 7 files changed, 142 insertions(+), 14 deletions(-) With src patch v4 + ports patches, the only new failure on amd64 was astro/stellarsolver (In reply to Antoine Brodin from comment #35) Thank you! Do I have portmgr@ approval to commit the ports patches if I haven't heard objections from maintainers by September 30th? This is covered by design, you do not need an explicit approval, but count this as an explicit approval anyway ;) Comment on attachment 236638 [details]
Proposed patch for misc/far2l
No longer required with the last round of header change; code would behave sub-optimally due to their "adapter".
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=638b276a416a4a744d51553ec986729ab035e711 commit 638b276a416a4a744d51553ec986729ab035e711 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2022-09-30 20:42:53 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2022-09-30 22:28:05 +0000 databases/pointcloud: unbreak on -CURRENT after GNU qsort_r PR: ports/266227 Exp-run by: antoine Approved by: portmgr .../files/patch-lib_sort__r_sort__r.h (new) | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=764565249f6d4df63e65373b696037b9a43ef14e commit 764565249f6d4df63e65373b696037b9a43ef14e Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2022-09-30 20:40:29 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2022-09-30 22:28:04 +0000 databases/iowow: unbreak on -CURRENT after GNU qsort_r PR: ports/266227 Exp-run by: antoine Approved by: portmgr .../iowow/files/patch-src_utils_sort__r.h (new) | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=82665ce295c0cdd2494bf09356d169ef28442a0a commit 82665ce295c0cdd2494bf09356d169ef28442a0a Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2022-09-30 17:02:48 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2022-09-30 22:28:03 +0000 sysutils/e2fsprogs: Fix qsort_r detection for POSIX qsort_r(3). PR: ports/266227 Exp-run by: antoine Approved by: portmgr sysutils/e2fsprogs/Makefile | 2 +- .../files/patch-lib_support_sort__r.h (new) | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=7df902171f69003e364e23feefc7d15e4aa97ed4 commit 7df902171f69003e364e23feefc7d15e4aa97ed4 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2022-09-30 20:45:51 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2022-09-30 22:28:06 +0000 databases/ejdb: unbreak on -CURRENT after GNU qsort_r PR: 266227 Exp-run by: antoine Approved by: portmgr .../ejdb/files/patch-src_util_sort__r.h (new) | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=a7c48b30a0ac7dac2ecf8d4dc3acdf5c5c02c452 commit a7c48b30a0ac7dac2ecf8d4dc3acdf5c5c02c452 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2022-09-30 20:34:40 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2022-09-30 22:28:04 +0000 security/hashcat: unbreak on -CURRENT after GNU qsort_r PR: ports/266227 Exp-run by: antoine Approved by: portmgr .../hashcat/files/patch-include_sort__r.h (new) | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=525e857368c8c2de355ca00b0c35008be6ee8a3c commit 525e857368c8c2de355ca00b0c35008be6ee8a3c Author: Matthias Andree <mandree@FreeBSD.org> AuthorDate: 2022-10-01 07:10:08 +0000 Commit: Matthias Andree <mandree@FreeBSD.org> CommitDate: 2022-10-01 07:13:09 +0000 sysutils/e2fsprogs: revert bogus qsort_r() patch. delphij@ and the upstream maintainer were working on a autoconf-based solution, and this patch was not approved. Remove it and mark port BROKEN on systems that changed qsort_r() for the GNU-like API. PR: 266227 sysutils/e2fsprogs/Makefile | 6 +++++- .../files/patch-lib_support_sort__r.h (gone) | 21 --------------------- 2 files changed, 5 insertions(+), 22 deletions(-) A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=5db803a6f26956fb47a211c29e34a0e5ccd82286 commit 5db803a6f26956fb47a211c29e34a0e5ccd82286 Author: Matthias Andree <mandree@FreeBSD.org> AuthorDate: 2022-10-01 10:40:13 +0000 Commit: Matthias Andree <mandree@FreeBSD.org> CommitDate: 2022-10-01 10:45:34 +0000 sysutils/e2fsprogs: misc/e2fsprogs-libblkid: fixes - for libblkid, fix a buffer size when parsing device names to make room for a trailing '\0' character from sscanf(). (This was a long-standing bug in our local patch.) - patch out qsort_r redeclarations from the sort_r library that are incompatible with FreeBSD since it aligned with GNU qsort_r() API - remove FreeBSD 14-CURRENT BROKEN= tag. Related to: PR: 266227 misc/e2fsprogs-libblkid/Makefile | 2 +- sysutils/e2fsprogs/Makefile | 6 +----- sysutils/e2fsprogs/files/patch-lib_blkid_devname.c | 4 ++-- .../files/patch-lib_support_sort__r.h (new) | 24 ++++++++++++++++++++++ 4 files changed, 28 insertions(+), 8 deletions(-) |