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
{