Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Apply hack for gcc 4.8 bug on rtld.c.



details:   https://anonhg.NetBSD.org/src/rev/1f1750980b7e
branches:  trunk
changeset: 791321:1f1750980b7e
user:      skrll <skrll%NetBSD.org@localhost>
date:      Wed Nov 13 11:06:53 2013 +0000

description:
Apply hack for gcc 4.8 bug on rtld.c.

diffstat:

 doc/HACKS                  |  12 +++++++++++-
 libexec/ld.elf_so/Makefile |   9 ++++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)

diffs (49 lines):

diff -r c846f201db59 -r 1f1750980b7e doc/HACKS
--- a/doc/HACKS Wed Nov 13 09:49:08 2013 +0000
+++ b/doc/HACKS Wed Nov 13 11:06:53 2013 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: HACKS,v 1.141 2013/11/09 21:38:57 christos Exp $
+# $NetBSD: HACKS,v 1.142 2013/11/13 11:06:53 skrll Exp $
 #
 # This file is intended to document workarounds for currently unsolved
 # (mostly) compiler bugs.
@@ -891,6 +891,16 @@
                internal compiler error: in cselib_record_set, at cselib.c:1999
        kcah
 
+port   x86_64
+       hack    gcc 4.8 gcc miscompiles
+       cdate   Wed Nov 13 10:16:00 GMT 2013
+       who     skrll
+       file    libexec/ld.elf_so/Makefile:1.124
+       descr
+               Incorrect code for rtld.o is produced with -fipa-cp-clone - stack
+               becomes unaligned in _rtld_unload_object.
+       kcah
+
 hack   fallback to /usr/bin/clang-cpp in rpcgen
 cdate  Wed Jun  5 15:49:27 CEST 2013
 who    joerg
diff -r c846f201db59 -r 1f1750980b7e libexec/ld.elf_so/Makefile
--- a/libexec/ld.elf_so/Makefile        Wed Nov 13 09:49:08 2013 +0000
+++ b/libexec/ld.elf_so/Makefile        Wed Nov 13 11:06:53 2013 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.123 2013/10/09 22:33:41 matt Exp $
+#      $NetBSD: Makefile,v 1.124 2013/11/13 11:06:53 skrll Exp $
 #
 # NOTE: when changing ld.so, ensure that ldd still compiles.
 #
@@ -117,6 +117,13 @@
 COPTS.rtld.c+= -Wno-stack-protector
 COPTS.symbol.c+=-Wno-stack-protector
 
+.if ${HAVE_GCC} >= 48
+.if ${LDELFSO_MACHINE_ARCH} == "x86_64"
+# gcc 4.8.1 miscompiles rtld.c when ipa-cp-clone is included.
+COPTS.rtld.c+= -fno-ipa-cp-clone
+.endif
+.endif
+
 LDADD+=                -L${CLIBOBJ} -L${DESTDIR}${LIBDIR}
 .if ${MKPICLIB} != "no"
 LDADD+=                -lc_pic



Home | Main Index | Thread Index | Old Index