glibc40/glibc-2.29-strict-aliasing.patch
Alexander Stefanov 57fdafec17 2.36
2022-09-20 14:42:45 +00:00

315 lines
13 KiB
Diff

diff -up glibc-2.36/csu/Makefile.37~ glibc-2.36/csu/Makefile
--- glibc-2.36/csu/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/csu/Makefile 2022-08-02 13:12:29.205993485 +0200
@@ -115,7 +115,7 @@ endif
asm-CPPFLAGS += -I$(objpfx).
# Enable unwinding so backtrace unwinds to __libc_start_main
-CFLAGS-libc-start.c += -funwind-tables
+CFLAGS-libc-start.c += -funwind-tables -fno-strict-aliasing
include ../Rules
diff -up glibc-2.36/debug/Makefile.37~ glibc-2.36/debug/Makefile
--- glibc-2.36/debug/Makefile.37~ 2022-08-02 13:12:29.205993485 +0200
+++ glibc-2.36/debug/Makefile 2022-08-02 13:12:51.373989783 +0200
@@ -111,6 +111,7 @@ CFLAGS-tst-longjmp_chk3.c += -fexception
CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1
CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2
CPPFLAGS-tst-read-chk-cancel.c += -D_FORTIFY_SOURCE=2
+CFLAGS-longjmp_chk.c += -fno-strict-aliasing
# _FORTIFY_SOURCE tests.
# Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and
diff -up glibc-2.36/inet/Makefile.37~ glibc-2.36/inet/Makefile
--- glibc-2.36/inet/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/inet/Makefile 2022-08-02 13:12:29.206993485 +0200
@@ -110,6 +110,20 @@ CFLAGS-getnetgrent_r.c += -fexceptions
CFLAGS-tst-checks-posix.c += -std=c99
CFLAGS-tst-sockaddr.c += -fno-strict-aliasing
+CFLAGS-gethstbyad_r.c += -fno-strict-aliasing
+CFLAGS-gethstbynm.c += -fno-strict-aliasing
+CFLAGS-gethstbynm2.c += -fno-strict-aliasing
+CFLAGS-gethstbynm2_r.c += -fno-strict-aliasing
+CFLAGS-gethstbynm_r.c += -fno-strict-aliasing
+CFLAGS-getnetbyad_r.c += -fno-strict-aliasing
+CFLAGS-getnetbynm_r.c += -fno-strict-aliasing
+CFLAGS-rcmd.c += -fno-strict-aliasing
+CFLAGS-rexec.c += -fno-strict-aliasing
+CFLAGS-ifaddrs.c += -fno-strict-aliasing
+CFLAGS-check_pf.c += -fno-strict-aliasing
+CFLAGS-check_native.c += -fno-strict-aliasing
+CFLAGS-netlink_assert_response.c += -fno-strict-aliasing
+
endif
# Install the rpc database file.
diff -up glibc-2.36/libio/libioP.h.37~ glibc-2.36/libio/libioP.h
--- glibc-2.36/libio/libioP.h.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/libio/libioP.h 2022-08-02 13:12:29.206993485 +0200
@@ -841,8 +841,8 @@ extern struct _IO_FILE_plus _IO_stderr_;
static inline bool
_IO_legacy_file (FILE *fp)
{
- return fp == (FILE *) &_IO_stdin_ || fp == (FILE *) &_IO_stdout_
- || fp == (FILE *) &_IO_stderr_;
+ return (void*)fp == &_IO_stdin_ || (void*)fp == &_IO_stdout_
+ || (void*)fp == &_IO_stderr_;
}
#endif
@@ -852,8 +852,8 @@ static inline void
_IO_deallocate_file (FILE *fp)
{
/* The current stream variables. */
- if (fp == (FILE *) &_IO_2_1_stdin_ || fp == (FILE *) &_IO_2_1_stdout_
- || fp == (FILE *) &_IO_2_1_stderr_)
+ if ((void*)fp == &_IO_2_1_stdin_ || (void*)fp == &_IO_2_1_stdout_
+ || (void*)fp == &_IO_2_1_stderr_)
return;
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
if (_IO_legacy_file (fp))
diff -up glibc-2.36/libio/Makefile.37~ glibc-2.36/libio/Makefile
--- glibc-2.36/libio/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/libio/Makefile 2022-08-02 13:12:29.206993485 +0200
@@ -154,6 +154,19 @@ CFLAGS-iofopen.c += -fexceptions
CFLAGS-iofopen64.c += -fexceptions
CFLAGS-oldtmpfile.c += -fexceptions
# XXX Do we need filedoalloc and wfiledoalloc? Others?
+#
+CFLAGS-iofopncook.c += -fno-strict-aliasing
+CFLAGS-iopopen.c += -fno-strict-aliasing
+CFLAGS-vswprintf.c += -fno-strict-aliasing
+CFLAGS-wmemstream.c += -fno-strict-aliasing
+CFLAGS-memstream.c += -fno-strict-aliasing
+CFLAGS-obprintf.c += -fno-strict-aliasing
+CFLAGS-stdfiles.c += -fno-strict-aliasing
+CFLAGS-stdio.c += -fno-strict-aliasing
+CFLAGS-oldiofopen.c += -fno-strict-aliasing
+CFLAGS-oldiofdopen.c += -fno-strict-aliasing
+CFLAGS-oldiopopen.c += -fno-strict-aliasing
+CFLAGS-oldstdfiles.c += -fno-strict-aliasing
CFLAGS-tst_putwc.c += -DOBJPFX=\"$(objpfx)\"
diff -up glibc-2.36/locale/Makefile.37~ glibc-2.36/locale/Makefile
--- glibc-2.36/locale/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/locale/Makefile 2022-08-02 13:12:29.206993485 +0200
@@ -106,6 +106,7 @@ CPPFLAGS-locale-programs = -DLOCALE_PATH
CFLAGS-charmap.c += -Wno-write-strings -Wno-char-subscripts
CFLAGS-locfile.c += -Wno-write-strings -Wno-char-subscripts
CFLAGS-charmap-dir.c += -Wno-write-strings
+CFLAGS-C-ctype.c += -fno-strict-aliasing
# Set libof-* for each routine.
cpp-srcs-left := $(localedef-modules) $(localedef-aux) $(locale-modules) \
diff -up glibc-2.36/misc/Makefile.37~ glibc-2.36/misc/Makefile
--- glibc-2.36/misc/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/misc/Makefile 2022-08-02 13:12:29.207993484 +0200
@@ -156,6 +156,8 @@ CFLAGS-mmap.op = $(no-stack-protector)
CFLAGS-mmap64.o = $(no-stack-protector)
CFLAGS-mmap64.op = $(no-stack-protector)
+CFLAGS-tsearch.c += -fno-strict-aliasing
+
include ../Rules
$(objpfx)libg.a: $(dep-dummy-lib); $(make-dummy-lib)
diff -up glibc-2.36/nis/Makefile.37~ glibc-2.36/nis/Makefile
--- glibc-2.36/nis/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/nis/Makefile 2022-08-02 13:12:29.207993484 +0200
@@ -52,6 +52,7 @@ endif # have-GLIBC_2.28
include ../Rules
+CFLAGS-nis_callback.c += -fno-strict-aliasing
libnsl-libc = $(common-objpfx)linkobj/libc.so
# Target-specific variable setting to link objects using deprecated
diff -up glibc-2.36/nptl/Makefile.37~ glibc-2.36/nptl/Makefile
--- glibc-2.36/nptl/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/nptl/Makefile 2022-08-02 13:12:29.207993484 +0200
@@ -262,6 +262,22 @@ CFLAGS-sem_clockwait.c = -fexceptions -f
CFLAGS-futex-internal.c += -fexceptions -fasynchronous-unwind-tables
+CFLAGS-pthread_create.c += -fno-strict-aliasing
+CFLAGS-sem_clockwait.c += -fno-strict-aliasing
+CFLAGS-sem_wait.c += -fno-strict-aliasing
+CFLAGS-sem_waitcommon.c += -fno-strict-aliasing
+CFLAGS-sem_timedwait.c += -fno-strict-aliasing
+CFLAGS-sem_post.c += -fno-strict-aliasing
+CFLAGS-unwind.c += -fno-strict-aliasing
+CFLAGS-pthread_attr_copy.c += -fno-strict-aliasing
+CFLAGS-pthread_cond_common.c += -fno-strict-aliasing
+CFLAGS-pthread_cond_destroy.c += -fno-strict-aliasing
+CFLAGS-pthread_cond_wait.c += -fno-strict-aliasing
+CFLAGS-pthread_cond_signal.c += -fno-strict-aliasing
+CFLAGS-pthread_cond_broadcast.c += -fno-strict-aliasing
+CFLAGS-pthread_setattr_default_np.c += -fno-strict-aliasing
+CFLAGS-pthread_getattr_default_np.c += -fno-strict-aliasing
+
LDLIBS-tst-once5 = -lstdc++
CFLAGS-tst-thread_local1.o = -std=gnu++11
LDLIBS-tst-thread_local1 = -lstdc++
diff -up glibc-2.36/nscd/Makefile.37~ glibc-2.36/nscd/Makefile
--- glibc-2.36/nscd/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/nscd/Makefile 2022-08-02 13:12:29.207993484 +0200
@@ -79,6 +79,14 @@ CFLAGS-nscd_gethst_r.c += -fexceptions
CFLAGS-nscd_getai.c += -fexceptions
CFLAGS-nscd_initgroups.c += -fexceptions
+CFLAGS-nscd_helper.c += -fno-strict-aliasing
+CFLAGS-nscd.c += -fno-strict-aliasing
+CFLAGS-connections.c += -fno-strict-aliasing
+CFLAGS-gethstbyad_r.c += -fno-strict-aliasing
+CFLAGS-gethstbynm3_r.c += -fno-strict-aliasing
+CFLAGS-aicache.c += -fno-strict-aliasing
+CFLAGS-gai.c += -fno-strict-aliasing
+
CPPFLAGS-nscd += -D_FORTIFY_SOURCE=2
ifeq (yesyes,$(have-fpie)$(build-shared))
diff -up glibc-2.36/nss/Makefile.37~ glibc-2.36/nss/Makefile
--- glibc-2.36/nss/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/nss/Makefile 2022-08-02 13:12:29.207993484 +0200
@@ -206,6 +206,9 @@ endif
$(objpfx)tst-nss-files-alias-leak.out: $(objpfx)/libnss_files.so
$(objpfx)tst-nss-files-alias-truncated.out: $(objpfx)/libnss_files.so
+CFLAGS-getnssent_r.c += -fno-strict-aliasing
+CFLAGS-digits_dots.c += -fno-strict-aliasing
+
# Disable DT_RUNPATH on NSS tests so that the glibc internal NSS
# functions can load testing NSS modules via DT_RPATH.
LDFLAGS-tst-nss-test1 = -Wl,--disable-new-dtags
diff -up glibc-2.36/posix/Makefile.37~ glibc-2.36/posix/Makefile
--- glibc-2.36/posix/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/posix/Makefile 2022-08-02 13:12:29.208993484 +0200
@@ -281,6 +281,13 @@ CFLAGS-execlp.os = -fomit-frame-pointer
CFLAGS-nanosleep.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-fork.c = $(libio-mtsafe)
+CFLAGS-glob.c += -fno-strict-aliasing
+CFLAGS-glob-lstat-compat.c += -fno-strict-aliasing
+CFLAGS-glob64.c += -fno-strict-aliasing
+CFLAGS-glob64-lstat-compat.c += -fno-strict-aliasing
+CFLAGS-oldglob.c += -fno-strict-aliasing
+CFLAGS-getaddrinfo.c += -fno-strict-aliasing
+
tstgetopt-ARGS = -a -b -cfoobar --required foobar --optional=bazbug \
--none random --col --color --colour
diff -up glibc-2.36/resolv/Makefile.37~ glibc-2.36/resolv/Makefile
--- glibc-2.36/resolv/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/resolv/Makefile 2022-08-02 13:12:29.208993484 +0200
@@ -216,6 +216,19 @@ include ../gen-locales.mk
CFLAGS-res_hconf.c += -fexceptions
+CFLAGS-gethstbyad_r.c += -fno-strict-aliasing
+CFLAGS-res-close.c += -fno-strict-aliasing
+CFLAGS-resolv_context.c += -fno-strict-aliasing
+CFLAGS-resolv_conf.c += -fno-strict-aliasing
+CFLAGS-res_mkquery.c += -fno-strict-aliasing
+CFLAGS-res_query.c += -fno-strict-aliasing
+CFLAGS-res_send.c += -fno-strict-aliasing
+CFLAGS-compat-hnamaddr.c += -fno-strict-aliasing
+CFLAGS-compat-gethnamaddr.c += -fno-strict-aliasing
+CFLAGS-dns-host.c += -fno-strict-aliasing
+CFLAGS-dns-network.c += -fno-strict-aliasing
+CFLAGS-dns-canon.c += -fno-strict-aliasing
+
# The DNS NSS modules needs the resolver.
$(objpfx)libnss_dns.so: $(objpfx)libresolv.so
diff -up glibc-2.36/rt/Makefile.37~ glibc-2.36/rt/Makefile
--- glibc-2.36/rt/Makefile.37~ 2022-08-02 13:12:29.115993511 +0200
+++ glibc-2.36/rt/Makefile 2022-08-02 13:12:29.208993484 +0200
@@ -100,6 +100,8 @@ CFLAGS-aio_suspend.c += -fexceptions
CFLAGS-mq_timedreceive.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-mq_timedsend.c += -fexceptions -fasynchronous-unwind-tables
+CFLAGS-timer_create.c += -fno-strict-aliasing
+
LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete
$(objpfx)librt.so: $(shared-thread-library)
diff -up glibc-2.36/setjmp/Makefile.37~ glibc-2.36/setjmp/Makefile
--- glibc-2.36/setjmp/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/setjmp/Makefile 2022-08-02 13:12:29.208993484 +0200
@@ -36,6 +36,10 @@ tests-internal := \
gen-as-const-headers += jmp_buf-macros.sym
+CFLAGS-sigjmp.c += -fno-strict-aliasing
+CFLAGS-longjmp.c += -fno-strict-aliasing
+CFLAGS-longjmp_chk.c += -fno-strict-aliasing
+
include ../Rules
$(objpfx)tst-setjmp-fp: $(libm)
diff -up glibc-2.36/stdio-common/Makefile.37~ glibc-2.36/stdio-common/Makefile
--- glibc-2.36/stdio-common/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/stdio-common/Makefile 2022-08-02 13:12:29.209993484 +0200
@@ -350,6 +350,10 @@ $(objpfx)tst-errno-manual.out: tst-errno
CFLAGS-vfprintf.c += -Wno-uninitialized
CFLAGS-vfwprintf.c += -Wno-uninitialized
+CFLAGS-vfscanf-internal.c += -fno-strict-aliasing
+CFLAGS-vfwscanf-internal.c += -fno-strict-aliasing
+CFLAGS-vfprintf-internal.c += -fno-strict-aliasing
+CFLAGS-vfwprintf-internal.c += -fno-strict-aliasing
CFLAGS-tmpfile.c += -fexceptions
CFLAGS-tmpfile64.c += -fexceptions
diff -up glibc-2.36/sunrpc/Makefile.37~ glibc-2.36/sunrpc/Makefile
--- glibc-2.36/sunrpc/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/sunrpc/Makefile 2022-08-02 13:12:29.209993484 +0200
@@ -97,6 +97,21 @@ CFLAGS-pmap_rmt.c += -fexceptions
CFLAGS-clnt_perr.c += -fexceptions
CFLAGS-openchild.c += -fexceptions
+CFLAGS-authuxprot.c += -fno-strict-aliasing
+CFLAGS-pmap_rmt.c += -fno-strict-aliasing
+CFLAGS-rpc_prot.c += -fno-strict-aliasing
+CFLAGS-rpc_cmsg.c += -fno-strict-aliasing
+CFLAGS-authdes_prot.c += -fno-strict-aliasing
+CFLAGS-rtime.c += -fno-strict-aliasing
+CFLAGS-svcauth_des.c += -fno-strict-aliasing
+CFLAGS-svc_unix.c += -fno-strict-aliasing
+CFLAGS-auth_des.c += -fno-strict-aliasing
+CFLAGS-clnt_udp.c += -fno-strict-aliasing
+CFLAGS-key_call.c += -fno-strict-aliasing
+CFLAGS-pm_getport.c += -fno-strict-aliasing
+CFLAGS-svc_tcp.c += -fno-strict-aliasing
+CFLAGS-svc_udp.c += -fno-strict-aliasing
+
$(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so
$(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so
$(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so
diff -up glibc-2.36/support/Makefile.37~ glibc-2.36/support/Makefile
--- glibc-2.36/support/Makefile.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/support/Makefile 2022-08-02 13:12:29.209993484 +0200
@@ -217,6 +217,8 @@ ifeq ($(build-shared),yes)
libsupport-inhibit-o += .o
endif
+CFLAGS-resolv_test.c = -fno-strict-aliasing
+
CFLAGS-support_paths.c = \
-DSRCDIR_PATH=\"`cd .. ; pwd`\" \
-DOBJDIR_PATH=\"`cd $(objpfx)/..; pwd`\" \
diff -up glibc-2.36/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h.37~ glibc-2.36/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
--- glibc-2.36/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h.37~ 2022-07-30 00:03:09.000000000 +0200
+++ glibc-2.36/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h 2022-08-02 13:12:29.209993484 +0200
@@ -17,6 +17,8 @@
#include <ldsodefs.h>
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+
/* The code checks if _rtld_global_ro was realocated before trying to access
the dl_hwcap field. The assembly is to make the compiler not optimize the
test (&_rtld_global_ro != NULL), which is always true in ISO C (but not