Subject: bug#22065: core dumped during compilation (emacs-25 branch on FreeBSD 9)

From: [email-masked] (Ashish SHUKLA)
Date: Mon, 15 Feb 2016 11:26:53 +0530

On Mon, 15 Feb 2016 00:05:37 -0400, Joseph Mingrone <[email-masked]> said:
| Paul Eggert <[email-masked]> writes:

|| Wolfgang Jenkner wrote:
||| So, perhaps, the FreeBSD 9 default base cc (a patched gcc 4.2.1) has
||| some stack-related optimization bug, even on amd64?

|| Thanks for the detective work. It inspired me to search GCC bug reports, where I
|| found a couple that appear to be directly relevant. The corresponding bug was
|| fixed in 2008 but GCC 4.2.1 predates the fix. I installed the attached patch
|| into the emacs-25 branch, and I hope it works around the compiler bug with
|| stack-allocated Lisp objects on FreeBSD 9. Please give it a try.

| Thanks for taking a look at the problem, but unfortunately it persists.  A new log is attached.

| While the ancient version of gcc is the default compiler in FreeBSD
| 9.3, clang is in the base system.  I tested using the base clang in
| 9.3 and the compiling finished without the error.  I'll submit a patch
| for the FreeBSD port to use clang.

Hi Joseph (and everyone),

Thanks much for investigating. The port builds fine with clang, like Joseph
said in his reply. I'm building the port with all OPTIONS to catch any
possible errors with following diff:

--- /usr/ports/editors/emacs-devel/Makefile	2016-02-08 04:16:55.000000000 +0530
+++ Makefile	2016-02-15 11:24:35.773237763 +0530
@@ -4,6 +4,7 @@
 PORTNAME=	emacs
 PORTVERSION=	${EMACS_VER}
 PORTEPOCH=	2
+PORTREVISION=	1
 CATEGORIES=	editors ipv6
 MASTER_SITES=	GNU_ALPHA/emacs/pretest
 PKGNAMESUFFIX=	-devel
@@ -14,7 +15,6 @@
 LICENSE=	GPLv3
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-BROKEN_FreeBSD_9=does not build
 BROKEN_sparc64=	fails to compile at bootstrap phase
 BROKEN_ia64=	Emacs 24.X does not currently build on ia64
 
@@ -189,6 +189,12 @@
 .endif
 .endif
 
+.if (${OSVERSION} < 1000000)
+CC=	/usr/bin/clang
+CPP=	/usr/bin/clang-cpp
+CXX=	/usr/bin/clang++
+.endif
+
 .if ${PORT_OPTIONS:MX11}
 INSTALLS_ICONS=	yes
 .if !${PORT_OPTIONS:MXFT}

And will commit once, it finishes building.

Thanks!
-- 
Ashish SHUKLA      | GPG: F682 CDCC 39DC 0FEA E116  20B6 C746 CFA9 E74F A4B0
Sent from my Emacs