ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] I: gcc 14.2.1 && binutils 2.43
@ 2024-11-01 13:18 Gleb Fotengauer-Malinovskiy
  2024-11-06  0:31 ` Andrey Bergman
  0 siblings, 1 reply; 4+ messages in thread
From: Gleb Fotengauer-Malinovskiy @ 2024-11-01 13:18 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 6877 bytes --]

Hi,

В Сизиф отправились gcc 14.2.1 и binutils 2.43.

https://gcc.gnu.org/gcc-14/changes.html

https://gcc.gnu.org/gcc-14/porting_to.html

Основное и главное изменение это то, что warning-и:
-Wdeclaration-missing-parameter-type
-Wimplicit-function-declaration
-Wimplicit-int
-Wincompatible-pointer-types
-Wint-conversion
-Wreturn-mismatch
теперь включены по умолчанию как ошибки.

К сожалению, это часто влияет не только на то, собирается ли код, но и на то,
какие выводы делает configure-скрипт (или его аналог) о системе.

Enjoy!


Собирающиеся пакеты, которые могут измениться от пересборки:

Сравнение логов успешной сборки пакетов по "^checking for":
https://ftp.altlinux.org/pub/people/glebfm/gcc14-info/1030-1031-success-checking-for-diff.txt
https://ftp.altlinux.org/pub/people/glebfm/gcc14-info/1030-1031-success-checking-for-acl.txt
Большая часть либо связана с изменением версий gcc/ld, либо меняется от пересборки к пересборке, но
видны и очень подозрительные изменения вроде:
-sqliteodbc-0.9998-alt1:checking for SQLGetPrivateProfileString via dlopen... yes
+sqliteodbc-0.9998-alt1:checking for SQLGetPrivateProfileString via dlopen... no
-qplay-0.7.3-alt0.2:checking for working fork... yes
+qplay-0.7.3-alt0.2:checking for working fork... no
-basilisk-1:2024.09.13-alt1:checking for X... libraries /usr/lib64/X11, headers
+basilisk-1:2024.09.13-alt1:checking for X... no


Пакеты, сборка которых сломалась:

https://ftp.altlinux.org/pub/people/glebfm/gcc14-info/gcc14-type-regressions.txt
	Эти 846 пакетов сломались как раз из-за warning-ов, ставших
	ошибками, о которых написано выше.


PsyDoom	arbars @everybody
alterator-usbguard	proskur @everybody
alterator-usbmount	proskur @everybody
android-tools	zorg @everybody
cve-manager	alexey
fcitx5-gtk	@nobody
gz-common	cas @everybody
gz-physics	cas @everybody
gz-sim	cas @everybody
kernelshark	vt @everybody
libopentelemetry	majioa @everybody
libsdbus-cpp	shrek @everybody
melonds	arbars @everybody
mysql-workbench-community	@nobody
pocl	lakostis @everybody
ppsspp	nenderus
toppler	admsasha @everybody
waked	shrek @everybody
	The following headers are used less widely in libstdc++ and may need to be included explicitly when compiling with GCC 14:

	<algorithm> (for std::copy_n, std::find_if, std::lower_bound, std::remove, std::reverse, std::sort etc.)
	<cstdint> (for std::int8_t, std::int32_t etc.)


astc-encoder	mike @everybody
bladerf	antohami @everybody
ioprocess	shaba @everybody
libdwarf	lav @everybody
libliftoff	rider @everybody
mbedtls-compat	nenderus @everybody
pve-qemu-server	shaba shrek andy
swaybg	legion @everybody
	-Walloc-size and -Wcalloc-transposed-args warnings are enabled for C++ as well.


dqt5-location	lvol @everybody
qt5-location	zerg
ripes	george @everybody
warzone2100	rider @everybody
	https://github.com/Tencent/rapidjson/issues/718
	https://github.com/Tencent/rapidjson/commit/3b2441b87f99ab65f37b141a7b548ebadb607b96


codelite	grenka
musescore	lav @qa @everybody
tora	rider @everybody
	https://github.com/cubicdaiya/dtl/commit/7496ad1a31f27442e2326f2c2a68c1c8b587db4c


libv8-3.14	@nobody
qxmledit	led @everybody
	/usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]

	-Wtemplate-id-cdtor это новый warning.


FlightGear	mike @qa @everybody
SimGear	mike @qa @everybody
	/usr/src/RPM/BUILD/SimGear-2020.3.17/simgear/math/simd.hxx:1155:17: error: cannot convert 'const __m128' to '__m128i' in assignment

	Это и раньше была ошибка, просто новый gcc её диагностирует, удаление
	метода в данном случае должно помочь.


vulkan-headers	lakostis
	  The target named "Vulkan-Module" has C++ sources that may use modules, but
	  modules are not supported by this generator:

	    Unix Makefiles

	  Modules are supported only by Ninja, Ninja Multi-Config, and Visual Studio
	  generators for VS 17.4 and newer.  See the cmake-cxxmodules(7) manual for
	  details.  Use the CMAKE_CXX_SCAN_FOR_MODULES variable to enable or disable
	  scanning.

	C gcc >= 14 в этом проекте включается поддержка C++ modules.


cataclysm-dda	sem @everybody
	src/third-party/flatbuffers/stl_emulation.h:548:12: error: assignment of read-only member 'flatbuffers::span<T, Extent>::count_'
	https://github.com/google/flatbuffers/commit/20aad0c41e1252b04c72111c3eb221280a9c2009


emacs	sbolshakov @everybody
	E: Couldn't find package libgccjit13-devel

	Зависимость должна быть на libgccjit-devel.


geogram	majioa @everybody
	/usr/src/RPM/BUILD/geogram-1.7.9/src/lib/geogram/third_party/PoissonRecon/poisson_geogram.cpp:72:10: fatal error: omp.h: No such file or directory

	Зависимость должна быть не на libgomp13-devel а на libgomp-devel.


freehdl	@nobody
	../freehdl/std-vhdl-types.hh:1486:58: error: expression cannot be used as a function
	 1486 |   const int mem_size = length * ainfo->element_type->size();

	 При этом 'const uchar size;', так что странно, что это работало раньше.
	
mmc-utils	sbolshakov @everybody
freeswitch	rider @cpan
	Enhanced -Wstringop-overflow warning.

	https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git/commit/?id=0b3b45b00d58c7bd745771f2eaef66a2530af0a9
	https://github.com/signalwire/freeswitch/commit/cced3e7f1bec9058ce8bbd63f27bcb6e7b3fb992

	
photopnmtools	lav @everybody
	/usr/src/RPM/BUILD/photopnmtools-1.3/ppmhsy.c:683:(.text.startup+0xd60): undefined reference to `_ZGVbN2vv_pow'

	Из-за оптимизации нужно линковаться ещё и с -lmvec.

renderdoc	nenderus @everybody
	/usr/src/RPM/BUILD/renderdoc-1.31/renderdoc/driver/vulkan/vk_common.cpp:908:49: error: casting 'VkPackedVersion' to 'uint32_t&' {aka 'unsigned int&'} does not use 'VkPackedVersion::operator uint32_t() const' [-Werror=cast-user-defined]

	-Wcast-user-defined это новый warning.


rocm-smi-lib	lakostis @everybody
	https://github.com/ROCm/rocm_smi_lib/commit/12c8237705a91bd4096cfa4e9c0eac2d5305544b


schroot	sin @everybody
	https://codeberg.org/shelter/reschroot/commit/55af32cf

-- 
glebfm

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] I: gcc 14.2.1 && binutils 2.43
  2024-11-01 13:18 [devel] I: gcc 14.2.1 && binutils 2.43 Gleb Fotengauer-Malinovskiy
@ 2024-11-06  0:31 ` Andrey Bergman
  2024-11-06 13:17   ` Gleb Fotengauer-Malinovskiy
  0 siblings, 1 reply; 4+ messages in thread
From: Andrey Bergman @ 2024-11-06  0:31 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Nov 01, 2024 at 03:18:22PM GMT, Gleb Fotengauer-Malinovskiy wrote:
Приветствую!

> Основное и главное изменение это то, что warning-и:
> -Wdeclaration-missing-parameter-type
> -Wimplicit-function-declaration
> -Wimplicit-int
> -Wincompatible-pointer-types
> -Wint-conversion
> -Wreturn-mismatch
> теперь включены по умолчанию как ошибки.

Что-то из этого можно исправить, но ряд проблем, особенно в
configure скриптах использует -Wimplicit-function-declaration
для того, чтобы проверить наличие функции хоть в каком-то виде
в стандартной библиотеке С. К примеру, MoscowML проверяет
ряд функций в Configure.

Тут можно зафиксировать стандарт C на C89. В нём разрешено использовать
функции без объявлений.



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] I: gcc 14.2.1 && binutils 2.43
  2024-11-06  0:31 ` Andrey Bergman
@ 2024-11-06 13:17   ` Gleb Fotengauer-Malinovskiy
  2024-11-06 16:18     ` Vladislav Zavjalov
  0 siblings, 1 reply; 4+ messages in thread
From: Gleb Fotengauer-Malinovskiy @ 2024-11-06 13:17 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1507 bytes --]

On Tue, Nov 05, 2024 at 07:31:24PM -0500, Andrey Bergman wrote:
> On Fri, Nov 01, 2024 at 03:18:22PM GMT, Gleb Fotengauer-Malinovskiy wrote:
> Приветствую!
> 
> > Основное и главное изменение это то, что warning-и:
> > -Wdeclaration-missing-parameter-type
> > -Wimplicit-function-declaration
> > -Wimplicit-int
> > -Wincompatible-pointer-types
> > -Wint-conversion
> > -Wreturn-mismatch
> > теперь включены по умолчанию как ошибки.
> 
> Что-то из этого можно исправить, но ряд проблем, особенно в
> configure скриптах использует -Wimplicit-function-declaration
> для того, чтобы проверить наличие функции хоть в каком-то виде
> в стандартной библиотеке С. К примеру, MoscowML проверяет
> ряд функций в Configure.
> 
> Тут можно зафиксировать стандарт C на C89. В нём разрешено использовать
> функции без объявлений.

Чтобы проверить наличие функции по возможности с ней линковаться, autoconf
генерирует примерно вот такой код и успешно избегает этого warning-а:

char foo (void);

int
main (void)
{
  return foo ();
  return 0;
}

-- 
glebfm

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] I: gcc 14.2.1 && binutils 2.43
  2024-11-06 13:17   ` Gleb Fotengauer-Malinovskiy
@ 2024-11-06 16:18     ` Vladislav Zavjalov
  0 siblings, 0 replies; 4+ messages in thread
From: Vladislav Zavjalov @ 2024-11-06 16:18 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Кcтати, на тему autoconf и gcc14.

В пакете fvwm в configure.ac обнаружилась такая проверка,
которая с gcc14 начала срабатывать:

AC_TRY_COMPILE([#include <stdio.h>],
[int i; static j; int *p; char *c;
  switch (*p = p = *c) { case 0: printf("%Q", c, p); }
  *c = &i; c = p;
  while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1));
], , AC_MSG_ERROR("
configure is not able to compile programs with warnings.  Please
remove all offending options like -Werror from the CFLAGS and
CPPFLAGS variables and run configure again."))

Есть ли какие-то соображения, зачем это могло быть сделано и нужно ли тут что-то?
(В апстриме fvwm уже совсем не поддерживается, вряд ли там стоит спрашивать)
Я пока полностью убрал эту проверку, на сборку и работу это, кажется, не повлияло.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-11-06 16:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-01 13:18 [devel] I: gcc 14.2.1 && binutils 2.43 Gleb Fotengauer-Malinovskiy
2024-11-06  0:31 ` Andrey Bergman
2024-11-06 13:17   ` Gleb Fotengauer-Malinovskiy
2024-11-06 16:18     ` Vladislav Zavjalov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git