Bug 75832 - editors/emacs : byte-compile-file fails on ia64 6-current
Summary: editors/emacs : byte-compile-file fails on ia64 6-current
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: MANTANI Nobutaka
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-05 00:20 UTC by Yasuhiro Kimura
Modified: 2005-05-05 18:24 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yasuhiro Kimura freebsd_committer freebsd_triage 2005-01-05 00:20:25 UTC
	I'm maintainer of irc/riece (riece-emacs21) and notified by kris
	that my port is broken on ia64 6-current. I checked build log of
	pointyhat and found that byte-compile of some files failed
	as following:

	/usr/local/bin/emacs-21.3 -batch -q -no-site-file -l COMPILE -f riece-compile
	Wrote /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-compat.elc
	Wrote /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-emacs.elc
	Wrote /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-globals.elc
	Wrote /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-options.elc
	Wrote /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-version.elc
	Wrote /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-coding.elc
	While compiling toplevel forms in file /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-complete.el:
	  !! Invalid function (("DEAD"))
	Wrote /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-addon.elc
	Wrote /tmp/a/ports/irc/riece/work/riece-1.0.6/lisp/riece-mode.elc

	But I also found that build of following ports failed with similar
	error.

	converters/mule-ucs
	databases/bbdb
	deskutils/mhc
	devel/cedit
	editors/flim
	editors/gnuserv
	editors/speedbar
	editors/tamago
	editors/tree-widget
	graphics/xface.el
	irc/erc
	irc/irchat-pj-emacs21
	japanese/ddskk
	japanese/lookup
	japanese/navi2ch-emacs21
	mail/mew2
	mail/mew3
	mail/vm
	net/tramp
	textproc/dictionary
	www/w3-4
	
	All of these ports depend on editors/emacs, build of them fail
	only on ia64 6-current, and build of them fail when byte-compiling
	.el file with similar error message. So this problem is likely
	to result from editors/emacs (or OS itself) than from each ports.

How-To-Repeat: 	Build any of ports listed above on ia64 6-current
Comment 1 Volker Stolz freebsd_committer freebsd_triage 2005-01-18 12:14:35 UTC
Responsible Changed
From-To: freebsd-ports-bugs->nobutaka

Over to editors/emacs-maintainer
Comment 2 Yoichi NAKAYAMA freebsd_committer freebsd_triage 2005-05-03 23:42:11 UTC
I found emacs build on ia64 shows following strange warning:

gcc -c -I/usr/X11R6/include -I/usr/local/include -L/usr/local/lib -Demacs -DHAVE_CONFIG_H   -I. -I/q/scratch/yoichi/emacs-21.3/src -I/usr/X11R6/include -I/usr/local/include -L/usr/local/lib -g -O2 buffer.c
buffer.c: In function `Fset_buffer_multibyte':
buffer.c:2089: warning: comparison is always true due to limited range of data type
/var/tmp//cc673udc.s: Assembler messages:
/var/tmp//cc673udc.s:24790: Warning: Use of 'mov' may violate WAW dependency 'GR%, % in 1 - 127' (impliedf), specific resource number is 14
/var/tmp//cc673udc.s:24790: Warning: Only the first path encountering the conflict is reported
/var/tmp//cc673udc.s:24789: Warning: This is the location of the conflicting usage

I think it is a gcc bug. I confirmed that emacs compiled
without -O2 optimization flag does't show the problems.

Fix:
 compile buffer.c (or entire emacs) without -O2 flag on ia64 as a workaround
-- 
Yoichi NAKAYAMA
Comment 3 Yoichi NAKAYAMA freebsd_committer freebsd_triage 2005-05-05 15:24:43 UTC
At Wed, 04 May 2005 07:42:11 +0900,
Yoichi Nakayama wrote:
> I found emacs build on ia64 shows following strange warning:
> 
> gcc -c -I/usr/X11R6/include -I/usr/local/include -L/usr/local/lib -Demacs -DHAVE_CONFIG_H   -I. -I/q/scratch/yoichi/emacs-21.3/src -I/usr/X11R6/include -I/usr/local/include -L/usr/local/lib -g -O2 buffer.c
> buffer.c: In function `Fset_buffer_multibyte':
> buffer.c:2089: warning: comparison is always true due to limited range of data type
> /var/tmp//cc673udc.s: Assembler messages:
> /var/tmp//cc673udc.s:24790: Warning: Use of 'mov' may violate WAW dependency 'GR%, % in 1 - 127' (impliedf), specific resource number is 14
> /var/tmp//cc673udc.s:24790: Warning: Only the first path encountering the conflict is reported
> /var/tmp//cc673udc.s:24789: Warning: This is the location of the conflicting usage
> 
> I think it is a gcc bug. I confirmed that emacs compiled
> without -O2 optimization flag does't show the problems.

I tried with newer gcc by rms's suggestion, and observed that
the problem seems to be fixed in it:

pluto1:/p/scratch/yoichi/emacs-21.3/src[199]% make CC=/p/scratch/yoichi/ports/gcc41/work/build/gcc/xgcc buffer.o
/p/scratch/yoichi/ports/gcc41/work/build/gcc/xgcc -c -I/usr/X11R6/include -I/usr/local/include -L/usr/local/lib -Demacs -DHAVE_CONFIG_H -DUSE_LUCID  -I. -I/p/scratch/yoichi/emacs-21.3/src -I/usr/X11R6/include -I/usr/local/include -L/usr/local/lib -I/usr/X11R6/include -g -O2 buffer.c
buffer.c: In function 'Fset_buffer_major_mode':
buffer.c:1461: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness
buffer.c: In function 'Fset_buffer_multibyte':
buffer.c:2089: warning: comparison is always true due to limited range of data type
buffer.c: In function 'init_buffer':
buffer.c:4949: warning: pointer targets in passing argument 2 of 'strcmp' differ in signedness
pluto1:/p/scratch/yoichi/emacs-21.3/src[200]% rm buffer.o
remove buffer.o? y
pluto1:/p/scratch/yoichi/emacs-21.3/src[201]% make buffer.o
gcc -c -I/usr/X11R6/include -I/usr/local/include -L/usr/local/lib -Demacs -DHAVE_CONFIG_H -DUSE_LUCID  -I. -I/p/scratch/yoichi/emacs-21.3/src -I/usr/X11R6/include -I/usr/local/include -L/usr/local/lib -I/usr/X11R6/include -g -O2 buffer.c
buffer.c: In function `Fset_buffer_multibyte':
buffer.c:2089: warning: comparison is always true due to limited range of data type
/var/tmp//ccRc1udt.s: Assembler messages:
/var/tmp//ccRc1udt.s:24790: Warning: Use of 'mov' may violate WAW dependency 'GR%, % in 1 - 127' (impliedf), specific resource number is 14
/var/tmp//ccRc1udt.s:24790: Warning: Only the first path encountering the conflict is reported
/var/tmp//ccRc1udt.s:24789: Warning: This is the location of the conflicting usage
pluto1:/p/scratch/yoichi/emacs-21.3/src[202]% /p/scratch/yoichi/ports/gcc41/work/build/gcc/xgcc --version
xgcc (GCC) 4.1.0 20050501 (experimental)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
pluto1:/p/scratch/yoichi/emacs-21.3/src[203]% which gcc
/usr/bin/gcc
pluto1:/p/scratch/yoichi/emacs-21.3/src[204]% gcc --version
gcc (GCC) 3.4.2 [FreeBSD] 20040728
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Then I recommend the following workaround for now:
> Fix:
>  compile buffer.c (or entire emacs) without -O2 flag on ia64 as a workaround

Regards,
-- 
Yoichi NAKAYAMA
Comment 4 MANTANI Nobutaka freebsd_committer freebsd_triage 2005-05-05 18:22:42 UTC
State Changed
From-To: open->closed

Committed a workaround. I'm sorry to keep you waiting.