Hello,

With introducing '-O2' and '-Wextra' in CFLAGS in uwsgiconfig.py some warnings (treated as errors) 'variable ‘X’ might be clobbered by ‘longjmp’ or ‘vfork’' are appeared in process of compiling uWSGI with uGreen support. Building log (with error) is attached.

As I can see, error is generated nor by 'longjmp', neither by 'vfork', but by 'getcontext'/'makecontext' functions.

Should all listed variables be declared as 'volatile' or there is another fix of problem?
% gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.4-13' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.4.5 20100902 (prerelease) (Debian 4.4.4-13)

% make
python uwsgiconfig.py --build
*** uWSGI compiling ***
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o utils.o utils.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o pyutils.o pyutils.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o protocol.o protocol.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o socket.o socket.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o logging.o logging.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o wsgi_handlers.o wsgi_handlers.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o wsgi_headers.o wsgi_headers.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o uwsgi_handlers.o uwsgi_handlers.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o plugins.o plugins.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o main.o uwsgi.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o uwsgi_pymodule.o uwsgi_pymodule.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o async.o async.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o nagios.o nagios.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o ini.o ini.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o proxy.o proxy.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o http.o http.c
gcc -pthread -c -O2 -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/python2.6 -I/usr/include/python2.6 -DUWSGI_EMBEDDED -DUWSGI_UDP -DUWSGI_ASYNC -DUWSGI_MULTICAST -DUWSGI_MINTERPRETERS -DUWSGI_NAGIOS -DUWSGI_INI -DUWSGI_PROXY -DUWSGI_HTTP -DUWSGI_UGREEN -DUWSGI_SNMP -DUWSGI_THREADING -DUWSGI_PASTE -DUWSGI_SENDFILE -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=\".\" -DUWSGI_SPOOLER -o ugreen.o ugreen.c
cc1: warnings being treated as errors
ugreen.c: In function ‘u_green_init’:
ugreen.c:287: error: variable ‘wsgi_req’ might be clobbered by ‘longjmp’ or ‘vfork’
ugreen.c:289: error: variable ‘i’ might be clobbered by ‘longjmp’ or ‘vfork’
ugreen.c:290: error: variable ‘u_stack_size’ might be clobbered by ‘longjmp’ or ‘vfork’
make: *** [all] Ошибка 1
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to