I encountered the following undefined symbol rintf in fvwm/move_resize.c while building 2.5.13 on Solaris 9 using Sun Forte 7 compiler.

$ cc -V
cc: Forte Developer 7 C 5.4 2002/03/09

$ CC -V
CC: Forte Developer 7 C++ 5.4 Patch 111715-14 2004/03/11

$ cat /etc/release
                        Solaris 9 9/04 s9s_u7wos_09 SPARC
           Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                             Assembled 29 June 2004

$ cc -DFVWM_MODULEDIR=\"/opt/csw/libexec/fvwm/2.5.13\" -DFVWM_DATADIR=\"/opt/csw/share/fvwm\" -DFVWM_CONFDIR=\"/opt/csw/etc\" -DFVWM_COLORSET_PRIVATE=1 -DLOCALEDIR=\"/opt/csw/share/locale\" -xO4 -xCC -xcg92 -s -I/opt/csw/include -I/usr/sfw/include -L/opt/csw/lib -R/opt/csw/lib -L/usr/sfw/lib -R/usr/sfw/lib -o fvwm menus.o style.o events.o move_resize.o add_window.o builtins.o borders.o icons.o fvwm.o module_interface.o frame.o virtual.o stack.o ewmh.o menustyle.o session.o colorset.o placement.o functions.o gnome.o focus.o conditional.o geometry.o ewmh_events.o windowlist.o menuitem.o ewmh_icons.o decorations.o update.o expand.o misc.o functable.o bindings.o cursor.o colormaps.o ewmh_conf.o modconf.o read.o menucmd.o ewmh_names.o icccm2.o schedule.o windowshade.o focus_policy.o repeat.o execcontext.o colors.o menudim.o condrc.o -L../libs -lfvwm -L/usr/openwin/lib -R/usr/openwin/lib -lXpm -lstroke -lSM -lICE -lXext -lX11 -lsocket -lnsl -lm -lXrender -lpng -lz -lintl
Undefined                       first referenced
 symbol                             in file
rintf                               move_resize.o
ld: fatal: Symbol referencing errors. No output written to fvwm
gmake[3]: *** [fvwm] Error 1
gmake[3]: Leaving directory `/net/apsu/export/home0/paddockd/source/fvwm-2.5.13/fvwm-2.5.13/fvwm'

I created the following patch for fvwm/move_resize.c that allows fvwm 2.5.13 to be compiled on Solaris. But I suspect it's not ideal as it probably breaks compiles on other platforms. Here's my patch.

Duane.

--- fvwm-2.5.13/fvwm/move_resize.c.orig 2005-07-06 14:43:17.000000000 -0400
+++ fvwm-2.5.13/fvwm/move_resize.c      2005-07-18 09:13:46.638536000 -0400
@@ -290,29 +290,29 @@
        }
        else if (sscanf(s1,"w-%d",&val) == 1)
        {
-               *pFinalX = x - (int)(rintf(val*factor));
+               *pFinalX = x - (int)(rint(val*factor));
        }
        else if (sscanf(s1,"w+%d",&val) == 1 || sscanf(s1,"w%d",&val) == 1 )
        {
-               *pFinalX = x + (int)(rintf(val*factor));
+               *pFinalX = x + (int)(rint(val*factor));
        }
        else if (sscanf(s1,"m-%d",&val) == 1)
        {
                add_pointer_position = True;
-               *pFinalX = -(int)(rintf(val*factor));
+               *pFinalX = -(int)(rint(val*factor));
        }
        else if (sscanf(s1,"m+%d",&val) == 1 || sscanf(s1,"m%d",&val) == 1 )
        {
                add_pointer_position = True;
-               *pFinalX = (int)(rintf(val*factor));
+               *pFinalX = (int)(rint(val*factor));
        }
        else if (sscanf(s1,"-%d",&val) == 1)
        {
-               *pFinalX = max-w - (int)(rintf(val*factor));
+               *pFinalX = max-w - (int)(rint(val*factor));
        }
        else if (sscanf(s1,"+%d",&val) == 1 || sscanf(s1,"%d",&val) == 1)
        {
-               *pFinalX = (int)(rintf(val*factor));
+               *pFinalX = (int)(rint(val*factor));
        }
        else
        {


Reply via email to