--- Begin Message ---
Subject: |
Emacs workaround for Solaris 10 is unnecessary |
Date: |
Tue, 7 Mar 2017 09:05:01 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
Going back to the old bug report copied below, because I'm trying to
simplify the isnan code in Emacs.
I cannot reproduce the problem on Solaris 10 sparc with the bundled GCC
3.4.3 (/usr/sfw/bin/gcc, which reports "gcc (GCC) 3.4.3
(csl-sol210-3_4-branch+sol_rpath)". So I am inclined to think that the
compiler mentioned below wasn't installed correctly. I notice, for
example, that when I run the command 'nm floatfns.o' the output does not
contain the symbols __builtin_isnan or __builtin_isfinite. Instead, the
Fisnan function contains open code that tests where a register contains
a NaN, which is what I would expect GCC to do. So I am now inclined to
think that the bug report is a false alarm.
I'll CC: this to bug-gnu-emacs so that this gets a bug number.
On 10/22/2013 06:43 PM, Burt, Timothy C - GS wrote:
Paul ---
My apologies if you are not involved with emacs development or even care to be
notified of what seems to be a regression to one of your fixes. But if you're
still willing to read on then can I presume on you to point me in the right
direction to report this?
In short, while compiling emacs 24.3 on a Sparc Solaris 10 machine with gcc
v3.4.3 I encountered fatal errors[fn:1] with __builtin_isnan and
__builtin_isfinite being undefined symbols. I found your fix for isnan, but
the code base I used (from
http://gnu.spinellicreations.com/emacs/emacs-24.3.tar.gz) had isnan surrounded
by an #ifndef/#endif guard instead of your #undef solution. So, I changed it
back and did the same for isfinite then the compilation was successful. I
think this is a bug but I hesitated to use address@hidden since that seemed to
be for emacs, not necessarily emacs development. Would you be able to point me
in the right direction?
Thank you,
and I'm sorry for the cold call.
[fn:1] Internal compilation notes that include error at temacs step:
+ IMPORTANT: For Solaris 10 with gcc v3.4.3 the following changes need
to be made to src/floatfns.c
: 37c37
: < #ifndef isfinite
: ---
: > #undef isfinite
: 39,40c39
: < #endif
: < #ifndef isnan
: ---
: > #undef isnan
: 42d40
: < #endif
- Paul Eggert noticed an fixed a problem with isnan (see
http://lists.gnu.org/archive/html/emacs-diffs/2011-09/msg00041.html).
However, somewhere between that fix and the code base used here a
minor, but vital, change was made that broke the compilation on
Solaris 10 with gcc v3.4.3. Specifically, isnan should have
been #undef'd. The changes above take away the #ifndef/#endif
guards and replace them with a leading #undef for both isnan and
isfinite since they both contribute to the fatal error making
temacs.
#+begin_src text
cc -std=gnu99 -Demacs -I. -I/vendor/emacs-24.3/emacs-24.3/src
-I../lib -I/vendor/emacs-24.3/emacs-24.3/src/../lib -I/usr/openwin/include
-I/usr/include/libxml2 -MMD -MF deps/.d -MP -g3 -O2
-L/usr/openwin/lib \
-o temacs dispnew.o frame.o scroll.o xdisp.o menu.o xmenu.o
window.o charset.o coding.o category.o ccl.o character.o chartab.o bidi.o cm.o
term.o terminal.o xfaces.o xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o
xgselect.o emacs.o keyboard.o macros.o keymap.o sysdep.o buffer.o filelock.o
insdel.o marker.o minibuf.o fileio.o dired.o cmds.o casetab.o casefiddle.o
indent.o search.o regex.o undo.o alloc.o data.o doc.o editfns.o callint.o
eval.o floatfns.o fns.o font.o print.o lread.o syntax.o unexsol.o bytecode.o
process.o gnutls.o callproc.o region-cache.o sound.o atimer.o doprnt.o
intervals.o textprop.o composite.o xml.o profiler.o xfont.o fontset.o
fringe.o image.o terminfo.o lastfile.o widget.o ../lib/libgnu.a
../lwlib/liblw.a -ltiff -ljpeg -lpng -lz -lm -lXpm -lXaw -lXmu -lXt -lSM
-lICE -lXext -lX11 -lrt -lrt -lxml2 -lpthread -lz -lm -lsocket -lnsl
-lresolv -lsocket -lnsl -lncurses -lfontconfig -lpthread -lm
Undefined first referenced
symbol in file
__builtin_isnan floatfns.o
__builtin_isfinite floatfns.o
ld: fatal: Symbol referencing errors. No output written to temacs
collect2: ld returned 1 exit status
gmake[1]: *** [temacs] Error 1
gmake[1]: Leaving directory
`/ssd/system/vendor/emacs-24.3/emacs-24.3/src'
gmake: *** [src] Error 2
#+end_src
Timothy C. Burt, PhD
Senior Staff Scientist
address@hidden
(585) 269-5230
________________________________
This e-mail and any files transmitted with it may be proprietary and are
intended solely for the use of the individual or entity to whom they are
addressed. If you have received this e-mail in error please notify the sender.
Please note that any views or opinions presented in this e-mail are solely
those of the author and do not necessarily represent those of Exelis Inc. The
recipient should check this e-mail and any attachments for the presence of
viruses. Exelis Inc. accepts no liability for any damage caused by any virus
transmitted by this e-mail.
--- End Message ---
--- Begin Message ---
Subject: |
Emacs workaround for Solaris 10 is unnecessary |
Date: |
Tue, 7 Mar 2017 09:52:58 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
I installed the attached patch and am closing the bug report.
0001-Remove-isnan-hack-for-Solaris-10-gcc-3.4.3.patch
Description: Source code patch
--- End Message ---