Created attachment 859555 [details] cdr-tools build.log checking for cc... clang checking for gcc... (cached) clang checking whether the C compiler (clang -O2 -march=x86-64-v2 -fPIC -fstack-protector-strong -fstack-clash-protection -fomit-frame-pointer -pipe -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fexec-charset=UTF-8 ) works... no configure: error: installation or configuration problem: C compiler cannot create executables. RULES/rules.cnf:71: incs/amd64-linux-cc/rules.cnf: No such file or directory make: *** [RULES/rules.cnf:59: incs/amd64-linux-cc/rules.cnf] Error 1
Created attachment 859560 [details] emerge --info
The problem is that there are _a lot_ of main() instead of int main() -implicit int- and also a lot of exit(X) without including <stdlib.h> in the test in configure scripts.
(In reply to David Carlos Manuelda from comment #2) > The problem is that there are _a lot_ of main() instead of int main() > -implicit int- and also a lot of exit(X) without including <stdlib.h> in the > test in configure scripts. Thank you!
I've made 2 patches that makes cdrtools compile with Clang16, yet it still gives a lot of warnings which makes it will fail again in the future, like: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] Will attach them here
Created attachment 863961 [details, diff] Autoconf fixes Fixes configure scripts
Created attachment 863962 [details, diff] 0001-Fixed-autoconf-for-CLang.patch Fixes autoconf scripts
Created attachment 863963 [details, diff] 0002-Fix-missing-include-for-mlockall.patch Fixes a missing include
It seems that some more work is needed because mkisofs complains: mkisofs -o output.iso input_directory Setting input-charset to 'UTF-8' from locale. Unknown charset 'UTF-8'. Known charsets are: mkisofs: Installation problem: '$INS_BASE/lib/siconv/' missing.
Created attachment 863966 [details, diff] 0001-Fixed-autoconf-for-Clang16 Fixes autoconf scripts
Created attachment 863967 [details, diff] 0002-Added-a-missing-include Added a missing include
Good news! With the updated patches (attached) it compiles and (at least mkisofs) runs with clang only! Please do more test on the other cdrtool binaries
I'm surprised that worked considering this hasn't been merged yet in Clang: https://reviews.llvm.org/D93031 Does the -fexec-charset CFLAG just get ignored, without erroring out?
*** This bug has been marked as a duplicate of bug 870712 ***
*** Bug 870712 has been marked as a duplicate of this bug. ***
(In reply to Alec Ari from comment #12) > I'm surprised that worked considering this hasn't been merged yet in Clang: > > https://reviews.llvm.org/D93031 > > Does the -fexec-charset CFLAG just get ignored, without erroring out? commit b8198f022231eabc82e445c8237add7571260303 Author: Sylvestre Ledru <sylvestre@debian.org> Date: Mon Aug 11 18:09:03 2014 +0000 GCC compatibility: Ignore -fexec-charset=UTF-8 argument. It is the default in Clang. Reject other values. Summary: Just like with -finput-charset=UTF-8 in review http://reviews.llvm.org/D4347, I think we should just ignore it when UTF-8 is provided. Reviewers: rnk, rafael Reviewed By: rafael Subscribers: rafael, cfe-commits Differential Revision: http://reviews.llvm.org/D4841 llvm-svn: 215368
*** Bug 913634 has been marked as a duplicate of this bug. ***
Created attachment 878671 [details] build.log using gcc 14 Building on GCC 14 runs into this as well, applying the patches attached fixes it.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d479020a18c69c066f3ec1e8862e30d3c84422ee commit d479020a18c69c066f3ec1e8862e30d3c84422ee Author: Sam James <sam@gentoo.org> AuthorDate: 2023-12-16 08:22:45 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-12-16 08:23:55 +0000 app-cdr/cdrtools: apply modern C workaround, correctness fixes * Apply modern C workaround (build with -std=gnu89 for now). No point in trying to patch this at least until we're up to date (see bug #672060) which has its own complications. * Filter LTO & pass -fno-strict-aliasing. The code isn't even close to being compatible with either. Bug: https://bugs.gentoo.org/672060 Closes: https://bugs.gentoo.org/884771 Closes: https://bugs.gentoo.org/898582 Closes: https://bugs.gentoo.org/903876 Signed-off-by: Sam James <sam@gentoo.org> app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild | 309 +++++++++++++++++++++++ 1 file changed, 309 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c79fce973fb6d30324caf13ed1ef7881fb9741c9 commit c79fce973fb6d30324caf13ed1ef7881fb9741c9 Author: Kostadin Shishmanov <kocelfc@tutanota.com> AuthorDate: 2023-12-16 09:24:27 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-12-16 09:30:54 +0000 app-emulation/virt-manager: allow dev-libs/libisoburn > app-cdr/cdrtools This commit aims to provide an alternative to the unmaintained cdrtools which has all sorts of build failures [1] and [2] and needs patching. Upstream prefers xorrisofs provided by dev-libs/libisoburn over mkisofs which is provided by app-cdr/cdrtools.[3] I had a look at some other distros (openSUSE, Fedora and Debian) and they all use xorriso. The other program that is from cdrtools (isoinfo) has been removed. [4] [1] https://bugs.gentoo.org/903876 [2] https://bugs.gentoo.org/884771 [3] https://github.com/virt-manager/virt-manager/commit/3785abc6f0cb07c02ecc55760547a6f425513915 [4] https://github.com/virt-manager/virt-manager/commit/08d1a6a2ddd18f88222f9fdffa3f60f42a40bc67 Bug: https://bugs.gentoo.org/903876 Bug: https://bugs.gentoo.org/884771 Signed-off-by: Kostadin Shishmanov <kocelfc@tutanota.com> Closes: https://github.com/gentoo/gentoo/pull/34309 Signed-off-by: Sam James <sam@gentoo.org> .../virt-manager/virt-manager-4.1.0-r1.ebuild | 106 +++++++++++++++++++++ .../virt-manager/virt-manager-9999.ebuild | 2 +- 2 files changed, 107 insertions(+), 1 deletion(-)