--- Begin Message ---
Subject: |
24.3.50; Emacs compilation broken on FreeBSD SPARC/ARM platforms |
Date: |
Sun, 21 Jul 2013 18:24:32 +0530 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (amd64-portbld-freebsd9.1) |
Hi,
Following compiler error is observed on SPARC platform when compiling Emacs
24.3:
#v+
cc -std=gnu99 -c -I/usr/local/include -Demacs -I.
-I/home/ashish/emacs-nox11/work/emacs-24.3/src -I../lib
-I/home/ashish/emacs-nox11/work/emacs-24.3/src/../lib -MMD -MF
deps/sysdep.d -MP -O2 -pipe -fno-strict-aliasing sysdep.c
In file included from lisp.h:25,
from sysdep.c:39:
../lib/stdalign.h:51:1: warning: "_Alignof" redefined
In file included from /usr/include/string.h:36,
from ./conf_post.h:189,
from ./config.h:1671,
from sysdep.c:20:
/usr/include/sys/cdefs.h:240:1: warning: this is the location of the previous
definition
In file included from lisp.h:25,
from sysdep.c:39:
../lib/stdalign.h:82:1: warning: "_Alignas" redefined
In file included from /usr/include/string.h:36,
from ./conf_post.h:189,
from ./config.h:1671,
from sysdep.c:20:
/usr/include/sys/cdefs.h:239:1: warning: this is the location of the previous
definition
In file included from sysdep.c:89:
frame.h:86: error: redefinition of 'struct frame'
sysdep.c: In function 'list_system_processes':
sysdep.c:2684: warning: comparison is always true due to limited range of data
type
sysdep.c:2684: warning: comparison is always true due to limited range of data
type
sysdep.c: In function 'system_process_attributes':
sysdep.c:3264: warning: comparison is always true due to limited range of data
type
sysdep.c:3264: warning: comparison is always true due to limited range of data
type
sysdep.c:3272: warning: comparison is always true due to limited range of data
type
sysdep.c:3272: warning: comparison is always true due to limited range of data
type
sysdep.c:3312: warning: comparison is always true due to limited range of data
type
sysdep.c:3312: warning: comparison is always true due to limited range of data
type
sysdep.c:3313: warning: comparison is always true due to limited range of data
type
sysdep.c:3313: warning: comparison is always true due to limited range of data
type
sysdep.c:3314: warning: comparison is always true due to limited range of data
type
sysdep.c:3314: warning: comparison is always true due to limited range of data
type
sysdep.c:3322: warning: comparison is always true due to limited range of data
type
sysdep.c:3322: warning: comparison is always true due to limited range of data
type
sysdep.c:3346: warning: comparison is always true due to limited range of data
type
sysdep.c:3346: warning: comparison is always true due to limited range of data
type
gmake[1]: *** [sysdep.o] Error 1
#v-
This happens because Emacs' and FreeBSD's system header files define a type
`struct frame` which causes conflict. The attached diff file fixes this issue
by renaming the FreeBSD's type before it gets defined.
Following is the output of `uname -a`:
#v+
FreeBSD magnus 9.1-STABLE FreeBSD 9.1-STABLE #4 r252102: Sun Jun 23 10:25:50
EDT 2013 address@hidden:/usr/obj/usr/src/sys/GENERIC sparc64
=v-
Thanks
--
Ashish SHUKLA
“Censorship is telling a man he can't have a steak just because a baby can't
chew it.” (patcito, identi.ca #62762642)
Sent from my Emacs
patch-src_sysdep.c
Description: diff file
signature.asc
Description: PGP signature
--- End Message ---
--- Begin Message ---
Subject: |
24.3.50; Emacs compilation broken on FreeBSD SPARC/ARM platforms |
Date: |
Mon, 22 Jul 2013 18:48:19 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130623 Thunderbird/17.0.7 |
Thanks, I installed a fix in the trunk (bzr 113491) along the
lines you suggested and am marking this as done.
The _Alignof/_Alignas issue was fixed earlier in
the trunk (bzr 113322).
The other noise is harmless and should be fixed
once FreeBSD fixes their compiler (a later GCC
version, perhaps? I don't know the FreeBSD
compiler technology these days).
--- End Message ---