nginx 1.19.7 + njs {0.5.0/0.5.1/HEAD} fail for Fedora 34; ok for Fedora 33. gcc version? (F33 -> 10x, F34 -> 11x)

PGNet Dev pgnet.dev at gmail.com
Mon Feb 22 16:57:22 UTC 2021


i'm re-building nginx 1.19.7 @ fedora's COPR buildsys, enabling Fedora 34 builds, in addition to (current) Fedora 33 builds,

	https://copr.fedorainfracloud.org/coprs/pgfed/nginx-mainline/build/2013618/

builds with any of njs release tag 0.5.0, 0.5.1 or HEAD are fine for Fedora 33 -- no errors on build, and bins exec ok.

builds with same spec, for Fedora 34, fails @ njs

	...
	/usr/bin/gcc -c -pipe -fPIC -fvisibility=hidden -O -W -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wmissing-prototypes -Werror -g -O -I/usr/local/luajit2-openresty/include/luajit-2.1 -O3 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -march=x86-64 -mtune=generic -O3 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -march=x86-64 -mtune=generic -DNDK_SET_VAR -Wno-deprecated-declarations  \
		-Isrc -Ibuild -Injs \
		-o build/src/njs_fs.o \
		-MMD -MF build/src/njs_fs.dep -MT build/src/njs_fs.o \
		src/njs_fs.c
!!!	src/njs_fs.c:1376:33: error: argument 2 of type 'char *' declared as a pointer [-Werror=array-parameter=]
	1376 | njs_fs_path(njs_vm_t *vm, char *storage, const njs_value_t *src,
		|                           ~~~~~~^~~~~~~
	src/njs_fs.c:96:51: note: previously declared as an array 'char[4097]'
	96 | static const char *njs_fs_path(njs_vm_t *vm, char storage[NJS_MAX_PATH + 1],
		|                                              ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
	/usr/bin/gcc -c -pipe -fPIC -fvisibility=hidden -O -W -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wmissing-prototypes -Werror -g -O -I/usr/local/luajit2-openresty/include/luajit-2.1 -O3 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -march=x86-64 -mtune=generic -O3 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -march=x86-64 -mtune=generic -DNDK_SET_VAR -Wno-deprecated-declarations  \
		-Isrc -Ibuild -Injs \
		-o build/src/njs_crypto.o \
		-MMD -MF build/src/njs_crypto.dep -MT build/src/njs_crypto.o \
		src/njs_crypto.c
	...


full build log,

	https://download.copr.fedorainfracloud.org/results/pgfed/nginx-mainline/fedora-34-x86_64/02013618-nginx/builder-live.log.gz

i suspect F34's updated gcc version may be at fault

@ https://src.fedoraproject.org/rpms/gcc, gcc release versions are

	Fedora 34	gcc-11.0.0-0.19.fc34
	Fedora 33	gcc-10.2.1-3.fc33


i checked @ njs github, and didn't find a gcc11-related issue.

is this a known/suspected issue already? or some other cause?


More information about the nginx-devel mailing list