[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscom
From: |
Markus Trippelsdorf |
Subject: |
bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher |
Date: |
Mon, 25 Jul 2016 14:55:49 +0200 |
On 2016.07.25 at 14:38 +0200, Wolfgang Jenkner wrote:
> Markus Trippelsdorf <markus@trippelsdorf.de> wrote:
>
> > commit 09ece4d341a7e07fab7be22868ebcadae8641c79
> > Author: Wolfgang Jenkner <wjenkner@inode.at>
> > Date: Tue Feb 9 15:04:40 2016 -0800
> >
> > Restore the calloc family.
> >
> > causes gcc-5 and higher to compile calloc to an endless loop.
> > -fno-builtin-malloc should be used to work around the problem.
>
> This was the reason for the (compiler-independent) work-around
> discussed in
>
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22085
>
> and committed in
>
> commit 4b1436b702d56eedd27a0777fc7232cdfb7ac4f6
> Author: Wolfgang Jenkner <wjenkner@inode.at>
> Date: Sat Dec 26 12:12:02 2015 -0800
>
> Always define gmalloc etc. in src/gmalloc.c
>
> The commit you cited shouldn't change that, I think.
>
> In any case, that work-around seems to work for DragonflyBSD, which
> has gcc 5 as base compiler, and, for the time being (i.e., emacs-25
> branch), actually uses the malloc implemented in src/gmalloc, cf.
>
> https://github.com/DragonFlyBSD/DPorts/tree/master/editors/emacs-devel
>
> So, it would be useful to know on which system compilation fails.
This happens on a Gentoo system (glibc trunk, gcc-6 latest branch):
(gdb) run
Starting program:
/var/tmp/portage/app-editors/emacs-24.5-r3/work/emacs-24.5/src/temacs --batch
--load loadup bootstrap
Program received signal SIGSEGV, Segmentation fault.
0x00000000005cac25 in calloc (nmemb=<error reading variable: DWARF-2 expression
error: Loop detected (257).>, size=size@entry=1) at gmalloc.c:1529
1529 result = malloc (bytes);
(gdb) bt
#0 0x00000000005cac25 in calloc (nmemb=<error reading variable: DWARF-2
expression error: Loop detected (257).>, size=size@entry=1) at gmalloc.c:1529
#1 0x00000000005cac2a in calloc (nmemb=<error reading variable: DWARF-2
expression error: Loop detected (257).>, size=size@entry=1) at gmalloc.c:1529
#2 0x00000000005cac2a in calloc (nmemb=<error reading variable: DWARF-2
expression error: Loop detected (257).>, size=size@entry=1) at gmalloc.c:1529
...
Adding -fno-builtin-malloc to CFLAGS fixes the issue for me.
--
Markus
- bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher, Markus Trippelsdorf, 2016/07/25
- bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher, Wolfgang Jenkner, 2016/07/25
- bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher,
Markus Trippelsdorf <=
- bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher, Wolfgang Jenkner, 2016/07/25
- bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher, Markus Trippelsdorf, 2016/07/25
- bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher, Wolfgang Jenkner, 2016/07/25
- bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher, Markus Trippelsdorf, 2016/07/25
- bug#24065: commit 09ece4d341a7 (Restore the calloc family) causes miscompile for gcc-5 and higher, Paul Eggert, 2016/07/26