[pkg-uWSGI-devel] Bug#1098054: uwsgi-plugin-ruby: ftbfs with GCC-15
Matthias Klose
doko at debian.org
Mon Feb 17 17:58:59 GMT 2025
Package: src:uwsgi-plugin-ruby
Version: 0.0.2
Severity: important
Tags: sid forky
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-15
[This bug is NOT targeted to the upcoming trixie release]
Please keep this issue open in the bug tracker for the package it
was filed for. If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.
The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.
The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/uwsgi-plugin-ruby_0.0.2_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.
To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.
apt-get -t=experimental install g++
GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html
[...]
*_*) uwsgi --build-plugin \
"/usr/src/uwsgi/plugins/rack rack";; \
*) ln -s rack_ruby33_plugin.so rack_plugin.so;; \
esac
case "fiber" in \
*_*) uwsgi --build-plugin \
"/usr/src/uwsgi/plugins/fiber fiber";; \
*) ln -s fiber_ruby33_plugin.so fiber_plugin.so;; \
esac
case "rbthreads" in \
*_*) uwsgi --build-plugin \
"/usr/src/uwsgi/plugins/rbthreads rbthreads";; \
*) ln -s rbthreads_ruby33_plugin.so rbthreads_plugin.so;; \
esac
case "rack_ruby33" in \
*_*) uwsgi --build-plugin \
"/usr/src/uwsgi/plugins/rack rack_ruby33";; \
*) ln -s rack_ruby33_ruby33_plugin.so rack_ruby33_plugin.so;; \
esac
*** uWSGI building and linking plugin from /usr/src/uwsgi/plugins/rack ***
x86_64-linux-gnu-gcc -fPIC -shared -o rack_ruby33_plugin.so -I. -O2 -I. -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/uwsgi-2.0.28=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wformat-signedness -DUWSGI_HAS_IFADDRS -DUWSGI_ZLIB -DUWSGI_LOCK_USE_MUTEX -DUWSGI_EVENT_USE_EPOLL -DUWSGI_EVENT_TIMER_USE_TIMERFD -DUWSGI_EVENT_FILEMONITOR_USE_INOTIFY -DUWSGI_PCRE2 -DUWSGI_ROUTING -DUWSGI_CAP -DUWSGI_UUID -DUWSGI_VERSION="\"2.0.28-debian\"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="28" -DUWSGI_VERSION_REVISION="0" -DUWSGI_VERSION_CUSTOM="\"debian\"" -DUWSGI_YAML -DUWSGI_LIBYAML -I/usr/include/yajl -DUWSGI_JSON -DUWSGI_JSON_YAJL -DUWSGI_SSL -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR="\"/usr/lib/uwsgi/plugins\"" -g -O2 -ffile-prefix-map=/build/reproducible-path/uwsgi-plugin-ruby-0.0.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection -I.uwsgi_plugins_builder/ -g -O2 -ffile-prefix-map=BUILDDIR=. -fstack-protector-strong -fstack-clash-protection -fcf-protection -fPIC -DRUBY19 -DRUBY27 -I/usr/include/ruby-3.3.0 -I/usr/lib/x86_64-linux-gnu/ruby/3.3.0 -I/usr/lib/x86_64-linux-gnu/ruby/3.3.0/x86_64-linux-gnu -I/usr/include/ruby-3.3.0/x86_64-linux-gnu -I/usr/include/x86_64-linux-gnu/ruby-3.3.0 -Drack_plugin=rack_ruby33_plugin /usr/src/uwsgi/plugins/rack/rack_plugin.c /usr/src/uwsgi/plugins/rack/rack_api.c -Wl,-z,relro -L. -Wl,-z,now -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -L/usr/lib -lm -lpthread -lruby-3.3
build time: 4 seconds
*** rack_ruby33 plugin built and available in rack_ruby33_plugin.so ***
case "fiber_ruby33" in \
*_*) uwsgi --build-plugin \
"/usr/src/uwsgi/plugins/fiber fiber_ruby33";; \
*) ln -s fiber_ruby33_ruby33_plugin.so fiber_ruby33_plugin.so;; \
esac
/usr/src/uwsgi/plugins/fiber/fiber.c: In function ‘rb_fiber_schedule_to_req’:
/usr/src/uwsgi/plugins/fiber/fiber.c:27:47: error: passing argument 1 of ‘rb_fiber_new’ from incompatible pointer type [-Wincompatible-pointer-types]
27 | ufiber.fib[id] = rb_fiber_new(uwsgi_fiber_request, Qnil);
| ^~~~~~~~~~~~~~~~~~~
| |
| VALUE (*)(void) {aka long unsigned int (*)(void)}
In file included from /usr/include/ruby-3.3.0/ruby/intern.h:32,
from /usr/include/ruby-3.3.0/ruby/ruby.h:194,
from /usr/include/ruby-3.3.0/ruby.h:38,
from /usr/src/uwsgi/plugins/fiber/../rack/uwsgi_rack.h:3,
from /usr/src/uwsgi/plugins/fiber/fiber.c:1:
/usr/include/ruby-3.3.0/ruby/internal/intern/cont.h:39:41: note: expected ‘rb_block_call_func_t’ {aka ‘long unsigned int (*)(long unsigned int, long unsigned int, int, const long unsigned int *, long unsigned int)’} but argument is of type ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’}
39 | VALUE rb_fiber_new(rb_block_call_func_t func, VALUE callback_obj);
| ~~~~~~~~~~~~~~~~~~~~~^~~~
/usr/src/uwsgi/plugins/fiber/fiber.c:18:7: note: ‘uwsgi_fiber_request’ declared here
18 | VALUE uwsgi_fiber_request() {
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/ruby-3.3.0/ruby/ruby.h:41:
/usr/include/ruby-3.3.0/ruby/internal/iterator.h:88:29: note: ‘rb_block_call_func_t’ declared here
88 | typedef rb_block_call_func *rb_block_call_func_t;
| ^~~~~~~~~~~~~~~~~~~~
/usr/src/uwsgi/plugins/fiber/fiber.c: In function ‘fiber_schedule_to_req’:
/usr/src/uwsgi/plugins/fiber/fiber.c:48:20: error: passing argument 1 of ‘rb_protect’ from incompatible pointer type [-Wincompatible-pointer-types]
48 | rb_protect(rb_fiber_schedule_to_req, 0, &error);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| |
| VALUE (*)(void) {aka long unsigned int (*)(void)}
In file included from /usr/include/ruby-3.3.0/ruby/internal/scan_args.h:38,
from /usr/include/ruby-3.3.0/ruby/ruby.h:46:
/usr/include/ruby-3.3.0/ruby/internal/intern/proc.h:349:26: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’}
349 | VALUE rb_protect(VALUE (*func)(VALUE args), VALUE args, int *state);
| ~~~~~~~~^~~~~~~~~~~~~~~~~
/usr/src/uwsgi/plugins/fiber/fiber.c:23:7: note: ‘rb_fiber_schedule_to_req’ declared here
23 | VALUE rb_fiber_schedule_to_req() {
| ^~~~~~~~~~~~~~~~~~~~~~~~
*** uWSGI building and linking plugin from /usr/src/uwsgi/plugins/fiber ***
x86_64-linux-gnu-gcc -fPIC -shared -o fiber_ruby33_plugin.so -I. -O2 -I. -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/uwsgi-2.0.28=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wformat-signedness -DUWSGI_HAS_IFADDRS -DUWSGI_ZLIB -DUWSGI_LOCK_USE_MUTEX -DUWSGI_EVENT_USE_EPOLL -DUWSGI_EVENT_TIMER_USE_TIMERFD -DUWSGI_EVENT_FILEMONITOR_USE_INOTIFY -DUWSGI_PCRE2 -DUWSGI_ROUTING -DUWSGI_CAP -DUWSGI_UUID -DUWSGI_VERSION="\"2.0.28-debian\"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="28" -DUWSGI_VERSION_REVISION="0" -DUWSGI_VERSION_CUSTOM="\"debian\"" -DUWSGI_YAML -DUWSGI_LIBYAML -I/usr/include/yajl -DUWSGI_JSON -DUWSGI_JSON_YAJL -DUWSGI_SSL -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR="\"/usr/lib/uwsgi/plugins\"" -g -O2 -ffile-prefix-map=/build/reproducible-path/uwsgi-plugin-ruby-0.0.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection -I.uwsgi_plugins_builder/ -g -O2 -ffile-prefix-map=BUILDDIR=. -fstack-protector-strong -fstack-clash-protection -fcf-protection -fPIC -DRUBY19 -I/usr/include/ruby-3.3.0 -I/usr/lib/x86_64-linux-gnu/ruby/3.3.0 -I/usr/lib/x86_64-linux-gnu/ruby/3.3.0/x86_64-linux-gnu -I/usr/include/ruby-3.3.0/x86_64-linux-gnu -I/usr/include/x86_64-linux-gnu/ruby-3.3.0 -Dfiber_plugin=fiber_ruby33_plugin /usr/src/uwsgi/plugins/fiber/fiber.c -Wl,-z,relro
*** unable to build fiber_ruby33 plugin ***
make[1]: *** [debian/rules:32: fiber_ruby33_plugin.so] Error 1
make[1]: Leaving directory '/build/reproducible-path/uwsgi-plugin-ruby-0.0.2'
make: *** [debian/rules:29: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
More information about the pkg-uWSGI-devel
mailing list