From 900fa2573671d692ed245f76aa3f05cec462be0c Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Wed, 6 Apr 2022 12:09:42 -0300 Subject: stdio: Remove the usage of $(fno-unit-at-a-time) for errlist.c The errlist.c is built with -fno-toplevel-reorder to avoid compiler to reorder the compat assembly directives due an assembler issue [1] (fixed on 2.39). This patch removes the compiler flags by split the compat symbol generation in two phases. First the _sys_errlist_internal internal without any compat symbol directive is preprocessed to generate an assembly source code. This generate assembly is then used as input on a platform agnostic errlist-data.S which then creates the compat definitions. This prevents compiler to move any compat directive prior the _sys_errlist_internal definition itself. Checked on a make check run-built-tests=no on all affected ABIs. [1] https://sourceware.org/bugzilla/show_bug.cgi?id=29012 --- Makeconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Makeconfig') diff --git a/Makeconfig b/Makeconfig index 760f14e92f..b5aa07c4f4 100644 --- a/Makeconfig +++ b/Makeconfig @@ -1030,7 +1030,8 @@ ifeq (yes,$(build-shared)) # Under --enable-shared, we will build a shared library of PIC objects. # The PIC object files are named foo.os. object-suffixes += .os -CPPFLAGS-.os = -DPIC -DSHARED +pic-cppflags = -DPIC -DSHARED +CPPFLAGS-.os = $(pic-cppflags) CFLAGS-.os = $(filter %frame-pointer,$(+cflags)) $(pic-ccflag) libtype.os := lib%_pic.a # This can be changed by a sysdep makefile -- cgit 1.4.1