-
Notifications
You must be signed in to change notification settings - Fork 305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fedora 35 build fails on custom glibc overrides #6324
Comments
@mattiaverga Mattia, I'm afraid, but this looks more like a toolchain error at first sight. |
@mattiaverga Why should we support an OS that has not even been released? Until such time, I'll close this. |
I've asked for help on Fedora mailing list by someone which has more knowledge than me, this is the reply:
If you're not interested in fixing this I'll have to drop packaging RT in Fedora. |
@mattiaverga As you see, I was woefully ignorant of your role in the RawTherapee project. My apologies. Please keep packaging RT for Fedora. What remains curious, is why this problem arises now. This particular bit of code has been in our source tree for >6 years and, presumably, has never led to compilation errors or raised flags in static code analysis. I think @Floessie is much better suited to further comment on this than I am. |
@Thanatomanic no problem at all. I simply haven't got any C skills, so I need your help for fixing things like this to maintain RT in Fedora repositories. If it can help, Fedora 35 is already using glibc 2.34, that is scheduled to be released just around today. This is one reason that required a mass rebuild of all packages in Fedora repositories and many had failures related to these glibc upgrades. Accordingly to Fedora automated continuous build tool, the build failures started between glibc-2.33.9000-2 and glibc-2.33.9000-23. The changelog reports:
You may start seeing this build error in other distributions also when glibc 2.34 lands there too (if that's the right cause). |
Hmm, after sleeping on it, I still think that we're not overriding but overloading those C library functions. After all, I do understand that those attributes support fortification of the code. What I don't understand is why the simple presence of any @mattiaverga Mattia, would you be so kind to invite the commentator from the Fedora mailing list to this conversation, if that's possible? I'm positive we'll find a solution. Unfortunately I'm not able to test any coming fixes, as even Debian Experimental is still stuck on Best, |
The issue is that the new (in GCC 11) two-argument version of the struct T1;
struct T2;
void close(T1*);
void close(T2*);
T1* open(const char *) __attribute__ ((__malloc__ (close, 1))); Results in:
I filed a GCC PR: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101747 I don't know if this enhancement will be implemented. I'm not sure if it is worthwhile to add the cast to the glibc sources. Every use of this version of the The best course of action seems to be to avoid overloading ISO C functions in RawTherapee. |
@fweimer-rh Florian, thanks for the insights! 👍
Yep, don't know, why this was ever done the way it is. Maybe for quick dcraw adaption. I guess the best solution is moving the libc functions into our |
In the meantime, I've installed Fedora Rawhide in a VM and am able to reproduce the problem. This preliminary patch fixes it: HTH, |
Thanks @Floessie , I'll try to make a build with the provided patch ASAP. |
I can confirm that the patch solves the building issues, @Floessie feel free to commit. RT also still compiles successfully on some of the other OSes I tested. |
@Floessie sorry to have kept you waiting, I've been extremely busy last days. Thank you for the support! |
@Thanatomanic Roel, thanks for cross-checking! @mattiaverga Mattia, didn't know you had to backport the stuff to 5.8. If I had known, I would have committed to @mattiaverga @mattdm All the best and good luck with Fedora 35! I'm personally really sorry that 5.9 didn't yet happen so it won't make it into Debian 11. Let's hope we're ready for Fedora 36. 👍 And I'm sure we're ready for Debian 12 😉. Best, |
libfcgi raises the following build failure with glibc 2.34 and gcc 11.2.0: In file included from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/features.h:488, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/bits/libc-header-start.h:33, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/stdio.h:27, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/fcgi_stdio.h:18, from boinc_fcgi.h:19, from coproc.cpp:22: /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/wchar.h:582:24: error: 'malloc' attribute argument 1 is ambiguous 582 | __attribute_malloc__ __attr_dealloc_fclose; | ^~~~~~~~~~~~~~~~~~~~~ RawTherapee has the same kind of issue: - Beep6581/RawTherapee#6324 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101747 Fixes: - http://autobuild.buildroot.org/results/232dae62570ed7927a10864d83dccaf9b6214500 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
libfcgi raises the following build failure with glibc 2.34 and gcc 11.2.0: In file included from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/features.h:488, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/bits/libc-header-start.h:33, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/stdio.h:27, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/fcgi_stdio.h:18, from boinc_fcgi.h:19, from coproc.cpp:22: /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/wchar.h:582:24: error: 'malloc' attribute argument 1 is ambiguous 582 | __attribute_malloc__ __attr_dealloc_fclose; | ^~~~~~~~~~~~~~~~~~~~~ RawTherapee has the same kind of issue: - Beep6581/RawTherapee#6324 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101747 Fixes: - http://autobuild.buildroot.org/results/232dae62570ed7927a10864d83dccaf9b6214500 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> (cherry picked from commit 54cb3b5) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
libfcgi raises the following build failure with glibc 2.34 and gcc 11.2.0: In file included from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/features.h:488, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/bits/libc-header-start.h:33, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/stdio.h:27, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/fcgi_stdio.h:18, from boinc_fcgi.h:19, from coproc.cpp:22: /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/wchar.h:582:24: error: 'malloc' attribute argument 1 is ambiguous 582 | __attribute_malloc__ __attr_dealloc_fclose; | ^~~~~~~~~~~~~~~~~~~~~ RawTherapee has the same kind of issue: - Beep6581/RawTherapee#6324 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101747 Fixes: - http://autobuild.buildroot.org/results/232dae62570ed7927a10864d83dccaf9b6214500 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> (cherry picked from commit 54cb3b5) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Me:
LWN:
Me: 😑 But hey, Debian 12 is slated for mid-2023. 👍 |
libfcgi raises the following build failure with glibc 2.34 and gcc 11.2.0: In file included from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/features.h:488, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/bits/libc-header-start.h:33, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/stdio.h:27, from /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/fcgi_stdio.h:18, from boinc_fcgi.h:19, from coproc.cpp:22: /home/peko/autobuild/instance-1/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/wchar.h:582:24: error: 'malloc' attribute argument 1 is ambiguous 582 | __attribute_malloc__ __attr_dealloc_fclose; | ^~~~~~~~~~~~~~~~~~~~~ RawTherapee has the same kind of issue: - Beep6581/RawTherapee#6324 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101747 Fixes: - http://autobuild.buildroot.org/results/232dae62570ed7927a10864d83dccaf9b6214500 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> (cherry picked from commit 54cb3b5) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Rawtherapee builds are failing in Fedora, it seems the error is:
Full build log at https://kojipkgs.fedoraproject.org//work/tasks/8055/72488055/build.log
The text was updated successfully, but these errors were encountered: