summaryrefslogtreecommitdiff
path: root/package/openmotif
diff options
context:
space:
mode:
authorJohn Voltz <john.voltz@gmail.com>2008-03-06 18:20:21 +0000
committerJohn Voltz <john.voltz@gmail.com>2008-03-06 18:20:21 +0000
commit19067972a00237e0bfce969b658788eea38efffe (patch)
tree41e92bdce8989d1dc83c2638b02cff80f390b330 /package/openmotif
parent196aef7311a6791b1bfa1e4b680c9238f15fa724 (diff)
added openmotif
Diffstat (limited to 'package/openmotif')
-rw-r--r--package/openmotif/Config.in7
-rw-r--r--package/openmotif/README2
-rw-r--r--package/openmotif/openmotif-2.3.0-cross-compile.patch106
-rw-r--r--package/openmotif/openmotif-2.3.0-legacy-bzero-must-die.patch758
-rw-r--r--package/openmotif/openmotif.mk94
5 files changed, 967 insertions, 0 deletions
diff --git a/package/openmotif/Config.in b/package/openmotif/Config.in
new file mode 100644
index 000000000..4e17693e4
--- /dev/null
+++ b/package/openmotif/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_OPENMOTIF
+ bool "openmotif"
+ default n
+ help
+ OpenMotif is the publicly licensed version of Motif, the industry standard user interface toolkit for UNIX systems.
+
+ ftp://ftp.ics.com/openmotif/2.3/2.3.0
diff --git a/package/openmotif/README b/package/openmotif/README
new file mode 100644
index 000000000..e93bc65e3
--- /dev/null
+++ b/package/openmotif/README
@@ -0,0 +1,2 @@
+Compiling OpenMotif may require byacc (or just yacc)
+to be installed on the host build system
diff --git a/package/openmotif/openmotif-2.3.0-cross-compile.patch b/package/openmotif/openmotif-2.3.0-cross-compile.patch
new file mode 100644
index 000000000..3d5480b2c
--- /dev/null
+++ b/package/openmotif/openmotif-2.3.0-cross-compile.patch
@@ -0,0 +1,106 @@
+--- a/lib/Xm/Makefile.in 2007-08-09 03:27:55.000000000 -0400
++++ b/lib/Xm/Makefile.in 2008-02-27 10:45:45.000000000 -0500
+@@ -1130,7 +1130,7 @@ $(STRING_FILES): Makefile $(XMSTRING_LIS
+ test -f XmStrDefs23.ht || $(LN_S) $(srcdir)/XmStrDefs23.ht XmStrDefs23.ht
+ test -f XmStrDefsI.ht || $(LN_S) $(srcdir)/XmStrDefsI.ht XmStrDefsI.ht
+ test -f XmStrDefs.ct || $(LN_S) $(srcdir)/XmStrDefs.ct XmStrDefs.ct
+- $(top_builddir)/config/util/makestrs -f $(XMSTRING_LIST) >XmStrDefs.c
++ $(top_builddir)/config/util/makestrs-host -f $(XMSTRING_LIST) >XmStrDefs.c
+
+ @MessageCatalog_TRUE@$(CAT_FILES): Xm.msg
+ @MessageCatalog_TRUE@ $(mkinstalldirs) $(top_builddir)/localized/C/msg
+
+--- a/lib/Xm/Makefile.am 2005-12-17 10:04:02.000000000 -0500
++++ b/lib/Xm/Makefile.am 2008-02-27 10:40:01.000000000 -0500
+@@ -284,7 +284,7 @@ $(STRING_FILES): Makefile $(XMSTRING_LIS
+ test -f XmStrDefs23.ht || $(LN_S) $(srcdir)/XmStrDefs23.ht XmStrDefs23.ht
+ test -f XmStrDefsI.ht || $(LN_S) $(srcdir)/XmStrDefsI.ht XmStrDefsI.ht
+ test -f XmStrDefs.ct || $(LN_S) $(srcdir)/XmStrDefs.ct XmStrDefs.ct
+- $(top_builddir)/config/util/makestrs -f $(XMSTRING_LIST) >XmStrDefs.c
++ $(top_builddir)/config/util/makestrs-host -f $(XMSTRING_LIST) >XmStrDefs.c
+
+ if MessageCatalog
+
+--- a/tools/wml/Makefile.in 2008-02-27 11:24:14.000000000 -0500
++++ b/tools/wml/Makefile.in 2008-02-27 11:32:33.000000000 -0500
+@@ -617,9 +617,9 @@ UilLexPars.c: Uil.c
+
+ $(WMLTARGETS): wmluiltok wml UilLexPars.c $(TABLE)
+ $(RM) $(WMLTARGETS) wml.report wml-uil.mm
+- ./wmluiltok <$(srcdir)/Uil.y >tokens.dat
++ ./wmluiltok-host <$(srcdir)/Uil.y >tokens.dat
+ $(RM) wml-uil.mm
+- ./wml $(srcdir)/$(TABLE)
++ ./wml-host $(srcdir)/$(TABLE)
+ $(RM) tokens.dat
+
+ all: motif.wmd
+
+--- a/tools/wml/Makefile.am 2002-10-06 09:08:48.000000000 -0400
++++ b/tools/wml/Makefile.am 2008-02-27 11:33:04.000000000 -0500
+@@ -50,9 +50,9 @@ UilLexPars.c: Uil.c
+
+ $(WMLTARGETS): wmluiltok wml UilLexPars.c $(TABLE)
+ $(RM) $(WMLTARGETS) wml.report wml-uil.mm
+- ./wmluiltok <$(srcdir)/Uil.y >tokens.dat
++ ./wmluiltok-host <$(srcdir)/Uil.y >tokens.dat
+ $(RM) wml-uil.mm
+- ./wml $(srcdir)/$(TABLE)
++ ./wml-host $(srcdir)/$(TABLE)
+ $(RM) tokens.dat
+
+ all: motif.wmd
+
+--- a/demos/lib/Exm/wml/Makefile.am 2002-10-06 09:08:47.000000000 -0400
++++ b/demos/lib/Exm/wml/Makefile.am 2008-02-27 13:29:08.000000000 -0500
+@@ -65,11 +65,11 @@ $(TARGETS): $(TABLE) $(WMLDIR)/motif.wml
+ # $(YACC) -d $(YACCFLAGS) $(UILY)
+ # $(MV) y.tab.c UilLexPars.c
+ # $(MV) y.tab.h UilLexPars.h
+- $(top_builddir)/tools/wml/wmluiltok < $(UILY) > tokens.dat
++ $(top_builddir)/tools/wml/wmluiltok-host < $(UILY) > tokens.dat
+ # $(RM) wml-uil.mm
+ $(RM) Exm.h
+ $(LN_S) $(srcdir)/$(TABLE) ./Exm.h
+- $(CPP) -I$(WMLDIR) Exm.h | $(top_builddir)/tools/wml/wml
++ $(CPP) -I$(WMLDIR) Exm.h | $(top_builddir)/tools/wml/wml-host
+ $(RM) Exm.h
+ # $(RM) tokens.dat
+ #
+
+--- a/tools/wml/wmluiltok.c 2007-08-09 03:47:17.000000000 -0400
++++ b/tools/wml/wmluiltok.c 2008-02-27 12:13:02.000000000 -0500
+@@ -1689,13 +1689,13 @@ void *ptr;
+ free( ptr );
+ }
+
+-#if YY_MAIN
++//#if YY_MAIN
+ int main()
+ {
+ yylex();
+ return 0;
+ }
+-#endif
++//#endif
+ #line 183 "wmluiltok.l"
+
+
+--- a/ltmain.sh 2006-07-13 03:12:13.000000000 -0400
++++ b/ltmain.sh 2008-02-27 14:50:40.000000000 -0500
+@@ -5427,13 +5427,13 @@ else
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
++ exec \"\$progdir\\\\\$program-host\" \${1+\"\$@\"}
+ "
+ ;;
+
+ *)
+ $echo >> $output "\
+- exec \"\$progdir/\$program\" \${1+\"\$@\"}
++ exec \"\$progdir/\$program-host\" \${1+\"\$@\"}
+ "
+ ;;
+ esac
diff --git a/package/openmotif/openmotif-2.3.0-legacy-bzero-must-die.patch b/package/openmotif/openmotif-2.3.0-legacy-bzero-must-die.patch
new file mode 100644
index 000000000..d661f0d30
--- /dev/null
+++ b/package/openmotif/openmotif-2.3.0-legacy-bzero-must-die.patch
@@ -0,0 +1,758 @@
+diff -rup a/lib/Xm/BaseClass.c b/lib/Xm/BaseClass.c
+--- a/lib/Xm/BaseClass.c 2002-01-10 15:56:19.000000000 -0500
++++ b/lib/Xm/BaseClass.c 2008-02-27 12:56:46.000000000 -0500
+@@ -56,7 +56,7 @@ static char rcsid[] = "$TOG: BaseClass.c
+ #include <Xm/ExtObjectP.h>
+ #include <Xm/Screen.h>
+ #include <Xm/VendorSEP.h>
+-#include <Xm/XmosP.h> /* for bzero */
++#include <Xm/XmosP.h>
+ #include "BaseClassI.h"
+ #include "CallbackI.h"
+ #include "DropSMgrI.h"
+diff -rup a/lib/Xm/Color.c b/lib/Xm/Color.c
+--- a/lib/Xm/Color.c 2002-01-10 15:56:22.000000000 -0500
++++ b/lib/Xm/Color.c 2008-02-27 12:57:01.000000000 -0500
+@@ -50,7 +50,7 @@
+ #include <Xm/ManagerP.h>
+ #include <Xm/PrimitiveP.h>
+ #include <Xm/XmP.h>
+-#include <Xm/XmosP.h> /* for bzero */
++#include <Xm/XmosP.h>
+ #include "ColorI.h"
+ #include "ImageCachI.h"
+ #include "MessagesI.h"
+diff -rup a/lib/Xm/ComboBox.c b/lib/Xm/ComboBox.c
+--- a/lib/Xm/ComboBox.c 2005-05-18 07:43:44.000000000 -0400
++++ b/lib/Xm/ComboBox.c 2008-02-27 12:57:20.000000000 -0500
+@@ -45,7 +45,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <Xm/XmP.h>
+-#include <Xm/XmosP.h> /* for bzero et al */
++#include <Xm/XmosP.h>
+ #include <X11/Shell.h>
+ #include <X11/cursorfont.h>
+ #include <X11/keysym.h>
+@@ -1431,7 +1431,7 @@ ComboBoxParentProcess(Widget wid,
+ {
+ XmListCallbackStruct call_data;
+
+- bzero((char*) &call_data, sizeof(XmListCallbackStruct));
++ memset((char*) &call_data, 0, sizeof(XmListCallbackStruct));
+ if (pos)
+ {
+ call_data.item = XmStringCopy(item);
+diff -rup a/lib/Xm/Container.c b/lib/Xm/Container.c
+--- a/lib/Xm/Container.c 2005-07-13 05:25:16.000000000 -0400
++++ b/lib/Xm/Container.c 2008-02-27 12:57:46.000000000 -0500
+@@ -79,7 +79,7 @@
+ #include "CareVisualTI.h"
+ #include "MessagesI.h"
+ #include "ClipWindTI.h"
+-#include <Xm/XmosP.h> /* for bzero et al */
++#include <Xm/XmosP.h>
+
+ #define ZERO_DIM 0
+ #define DEFAULT_INDENTATION 40
+@@ -9417,7 +9417,7 @@ ScrollProc(
+ /* get the current position */
+ nav_data.valueMask =
+ NavValue | NavIncrement | NavMinimum | NavMaximum | NavSliderSize;
+- bzero(&nav_data,sizeof(XmNavigatorDataRec));
++ memset(&nav_data, 0, sizeof(XmNavigatorDataRec));
+ navigatorTrait->getValue(*nav, &nav_data);
+
+ /* compute the new position */
+diff -rup a/lib/Xm/DropSMgr.c b/lib/Xm/DropSMgr.c
+--- a/lib/Xm/DropSMgr.c 2006-04-20 07:26:07.000000000 -0400
++++ b/lib/Xm/DropSMgr.c 2008-02-27 12:58:12.000000000 -0500
+@@ -98,7 +98,7 @@ static char rcsid[] = "$TOG: DropSMgr.c
+ #include <Xm/ManagerP.h>
+ #include <Xm/DragC.h>
+ #include <Xm/DropTrans.h>
+-#include <Xm/XmosP.h> /* for bzero */
++#include <Xm/XmosP.h>
+ #include "XmI.h"
+ #include "DisplayI.h"
+ #include "DragBSI.h"
+@@ -2401,7 +2401,7 @@ PutDSToStream(
+ * that the widget does not define resources all of the required
+ * animation resources.
+ */
+- bzero(((void *) &iccInfo), sizeof(iccInfo));
++ memset(((void *) &iccInfo), 0, sizeof(iccInfo));
+
+ if (last)
+ tType |= XmDSM_T_CLOSE;
+@@ -3283,7 +3283,7 @@ CreateInfo(
+ size_t size;
+
+ /* zero out the working info struct */
+- bzero((void *)(&fullInfoRec), sizeof(fullInfoRec));
++ memset((void *)(&fullInfoRec), 0, sizeof(fullInfoRec));
+
+ /* Load that puppy */
+ SetDSLeaf(&fullInfoRec, True);
+@@ -3448,7 +3448,7 @@ int index;
+ /*
+ * Clear the full info back to the default (kind of) state.
+ */
+- bzero((void *)(full_info), sizeof(XmDSFullInfoRec));
++ memset((void *)(full_info), 0, sizeof(XmDSFullInfoRec));
+ full_info->animation_pixmap = XmUNSPECIFIED_PIXMAP;
+ full_info->animation_mask = XmUNSPECIFIED_PIXMAP;
+
+diff -rup a/lib/Xm/FileSB.c b/lib/Xm/FileSB.c
+--- a/lib/Xm/FileSB.c 2005-12-27 06:14:13.000000000 -0500
++++ b/lib/Xm/FileSB.c 2008-02-27 12:49:09.000000000 -0500
+@@ -2643,7 +2643,7 @@ SetValues(
+ * picked-up there by the XmNqualifySearchDataProc routine to fill
+ * in the value field of the search data.
+ */
+- bzero( (char*)&searchData, sizeof( XmFileSelectionBoxCallbackStruct)) ;
++ memset( (char*)&searchData, 0, sizeof( XmFileSelectionBoxCallbackStruct)) ;
+
+ if( FS_DirMask( new_w) != FS_DirMask( current) )
+ {
+diff -rup a/lib/Xm/List.c b/lib/Xm/List.c
+--- a/lib/Xm/List.c 2007-01-24 12:07:35.000000000 -0500
++++ b/lib/Xm/List.c 2008-02-27 12:49:27.000000000 -0500
+@@ -5696,7 +5696,7 @@ ClickElement(XmListWidget lw,
+ unsigned char selection_policy;
+ XmListCallbackStruct cb;
+
+- bzero((char*) &cb, sizeof(XmListCallbackStruct));
++ memset((char*) &cb, 0, sizeof(XmListCallbackStruct));
+ item = lw->list.LastHLItem;
+ lw->list.DidSelection = TRUE;
+
+diff -rup a/lib/Xm/Obso2_0.c b/lib/Xm/Obso2_0.c
+--- a/lib/Xm/Obso2_0.c 2002-05-14 17:29:03.000000000 -0400
++++ b/lib/Xm/Obso2_0.c 2008-02-27 12:50:04.000000000 -0500
+@@ -512,7 +512,7 @@ _XmGetDefaultThresholdsForScreen( Screen
+ * that call this routine don't have a widget, we need this hack
+ * to create a dummy widget.
+ */
+- bzero((void*) &widget, sizeof(widget) );
++ memset((void*) &widget, 0, sizeof(widget) );
+ widget.core.self = &widget;
+ widget.core.widget_class = coreWidgetClass;
+ widget.core.screen = screen;
+diff -rup a/lib/Xm/Protocols.c b/lib/Xm/Protocols.c
+--- a/lib/Xm/Protocols.c 2002-05-14 17:29:23.000000000 -0400
++++ b/lib/Xm/Protocols.c 2008-02-27 12:58:54.000000000 -0500
+@@ -48,7 +48,7 @@ static char rcsid[] = "$XConsortium: Pro
+
+ /* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
+
+-#include <Xm/XmosP.h> /* for bzero et al */
++#include <Xm/XmosP.h>
+ #include <Xm/ProtocolsP.h>
+ #include "BaseClassI.h"
+ #include "CallbackI.h"
+@@ -327,7 +327,7 @@ RemoveAllPMgr(
+
+ XtInsertEventHandler( w, KeyPressMask, TRUE, RemoveAllPMgrHandler,
+ closure, XtListHead) ;
+- bzero((void *) &ev, sizeof(XEvent));
++ memset((void *) &ev, 0, sizeof(XEvent));
+ ev.xkey.type = KeyPress ;
+ ev.xkey.display = XtDisplay( w) ;
+ ev.xkey.time = XtLastTimestampProcessed( XtDisplay( w)) ;
+diff -rup a/lib/Xm/RCLayout.c b/lib/Xm/RCLayout.c
+--- a/lib/Xm/RCLayout.c 2002-01-30 10:47:18.000000000 -0500
++++ b/lib/Xm/RCLayout.c 2008-02-27 12:58:35.000000000 -0500
+@@ -62,7 +62,7 @@ static char *rcsid = "$XConsortium: RCLa
+ #include <Xm/RowColumnP.h>
+ #include <Xm/TearOffBP.h>
+ #include <Xm/TearOffP.h>
+-#include <Xm/XmosP.h> /* for bzero */
++#include <Xm/XmosP.h>
+ #include "LabelGI.h"
+ #include "GeoUtilsI.h"
+ #include "RCLayoutI.h"
+@@ -1947,7 +1947,7 @@ _XmRC_SetOrGetTextMargins(
+
+ if (op == XmBASELINE_GET) {
+ /* in case the class does not have this procedure */
+- bzero((void *) textMargins, sizeof(XmBaselineMargins));
++ memset((void *) textMargins, 0, sizeof(XmBaselineMargins));
+ }
+
+ textMargins->get_or_set = op;
+diff -rup a/lib/Xm/ResConvert.c b/lib/Xm/ResConvert.c
+--- a/lib/Xm/ResConvert.c 2003-10-22 12:26:08.000000000 -0400
++++ b/lib/Xm/ResConvert.c 2008-02-27 12:51:24.000000000 -0500
+@@ -2600,7 +2600,7 @@ GetNextTab(char **s,
+ char sign[2];
+ char *tmp;
+
+- bzero(sign, sizeof(sign));
++ memset(sign, 0, sizeof(sign));
+ unitType[0] = '\0';
+
+ if (sscanf(*s, " %2[+]", sign) == 1)
+diff -rup a/lib/Xm/TearOff.c b/lib/Xm/TearOff.c
+--- a/lib/Xm/TearOff.c 2003-10-06 06:10:24.000000000 -0400
++++ b/lib/Xm/TearOff.c 2008-02-27 12:59:10.000000000 -0500
+@@ -63,7 +63,7 @@ static char rcsid[] = "$TOG: TearOff.c /
+ #include <Xm/SeparatorP.h>
+ #include <Xm/TraitP.h>
+ #include <Xm/VirtKeysP.h>
+-#include <Xm/XmosP.h> /* for bzero */
++#include <Xm/XmosP.h>
+ #include "MenuStateI.h"
+ #include "MenuUtilI.h"
+ #include "RCMenuI.h"
+@@ -1095,7 +1095,7 @@ _XmTearOffInitiate(
+ }
+ else
+ {
+- bzero((void *)&sprop, sizeof(sprop));
++ memset((void *)&sprop, 0, sizeof(sprop));
+ /* Fix for 9346, use sizeof(long) to calculate total
+ size of block from get property */
+ memcpy(&sprop, rprop, (size_t)sizeof(long) * num_items);
+diff -rup a/lib/Xm/TxtPropCv.c b/lib/Xm/TxtPropCv.c
+--- a/lib/Xm/TxtPropCv.c 2005-06-10 07:50:56.000000000 -0400
++++ b/lib/Xm/TxtPropCv.c 2008-02-27 12:52:24.000000000 -0500
+@@ -192,7 +192,7 @@ GetTextSegment(Display *display, /* unus
+ /* The text should be already be valid locale text */
+ char *tmp = XtMalloc(char_count + sizeof(wchar_t));
+ memcpy(tmp, text, char_count);
+- bzero(tmp + char_count, sizeof(wchar_t));
++ memset(tmp + char_count, 0, sizeof(wchar_t));
+
+ *buffer = tmp;
+ }
+@@ -216,7 +216,7 @@ GetTextSegment(Display *display, /* unus
+ already be valid locale text. */
+ char *tmp = XtMalloc(char_count + sizeof(wchar_t));
+ memcpy(tmp, text, char_count);
+- bzero(tmp + char_count, sizeof(wchar_t));
++ memset(tmp + char_count, 0, sizeof(wchar_t));
+
+ *buffer = tmp;
+ }
+@@ -226,7 +226,7 @@ GetTextSegment(Display *display, /* unus
+ /* The text is valid STRING text */
+ char *tmp = XtMalloc(char_count + sizeof(wchar_t));
+ memcpy(tmp, text, char_count);
+- bzero(tmp + char_count, sizeof(wchar_t));
++ memset(tmp + char_count, 0, sizeof(wchar_t));
+
+ *buffer = tmp;
+ }
+diff -rup a/lib/Xm/VendorS.c b/lib/Xm/VendorS.c
+--- a/lib/Xm/VendorS.c 2006-11-08 09:18:05.000000000 -0500
++++ b/lib/Xm/VendorS.c 2008-02-27 12:59:26.000000000 -0500
+@@ -65,7 +65,7 @@ static char rcsid[] = "$TOG: VendorS.c /
+ #include <Xm/UnitTypeT.h>
+ #include <Xm/VendorSEP.h>
+ #include <Xm/VendorSP.h>
+-#include <Xm/XmosP.h> /* for bzero */
++#include <Xm/XmosP.h>
+ #include <Xm/ToolTipCT.h>
+ #include "BaseClassI.h"
+ #include "CallbackI.h"
+@@ -1818,7 +1818,7 @@ MotifWarningHandler (String name,
+ char *par[10];
+ if (i > 10) i = 10;
+ memcpy((char*)par, (char*)params, i * sizeof(String));
+- bzero((char *)&par[i], (10-i) * sizeof(String));
++ memset((char *)&par[i], 0, (10-i) * sizeof(String));
+ (void) sprintf(&buf[strlen(buf)], buf2, par[0], par[1], par[2], par[3],
+ par[4], par[5], par[6], par[7], par[8], par[9]);
+ } else
+diff -rup a/lib/Xm/Xmfuncs.h b/lib/Xm/Xmfuncs.h
+--- a/lib/Xm/Xmfuncs.h 2002-01-04 16:23:20.000000000 -0500
++++ b/lib/Xm/Xmfuncs.h 2008-02-27 12:36:01.000000000 -0500
+@@ -36,14 +36,14 @@ in this Software without prior written a
+
+ #ifdef X_USEBFUNCS
+ void bcopy();
+-void bzero();
++//void bzero();
+ int bcmp();
+ #else
+ #if (__STDC__ && !defined(X_NOT_STDC_ENV) && !defined(sun) && !defined(macII) && !defined(apollo)) || defined(SVR4) || defined(hpux) || defined(_IBMR2) || defined(_SEQUENT_)
+ #include <string.h>
+ #define _XFUNCS_H_INCLUDED_STRING_H
+ #define bcopy(b1,b2,len) memmove(b2, b1, (size_t)(len))
+-#define bzero(b,len) memset(b, 0, (size_t)(len))
++//#define bzero(b,len) memset(b, 0, (size_t)(len))
+ #define bcmp(b1,b2,len) memcmp(b1, b2, (size_t)(len))
+ #else
+ #ifdef sgi
+@@ -52,11 +52,11 @@ int bcmp();
+ #ifdef SYSV
+ #include <memory.h>
+ void bcopy();
+-#define bzero(b,len) memset(b, 0, len)
++//#define bzero(b,len) memset(b, 0, len)
+ #define bcmp(b1,b2,len) memcmp(b1, b2, len)
+ #else /* bsd */
+ void bcopy();
+-void bzero();
++//void bzero();
+ int bcmp();
+ #endif /* SYSV */
+ #endif /* sgi */
+@@ -70,8 +70,8 @@ int bcmp();
+ #ifndef _XFUNCS_H_INCLUDED_STRING_H
+ #include <string.h>
+ #endif
+-#undef bzero
+-#define bzero(b,len) memset(b,0,len)
++//#undef bzero
++//#define bzero(b,len) memset(b,0,len)
+ #else /* else X_NOT_STDC_ENV or SunOS 4 */
+ #if defined(SYSV) || defined(luna) || defined(sun) || defined(__sxg__)
+ #include <memory.h>
+diff -rup a/lib/Xm/XmIm.c b/lib/Xm/XmIm.c
+--- a/lib/Xm/XmIm.c 2005-07-18 09:01:07.000000000 -0400
++++ b/lib/Xm/XmIm.c 2008-02-27 12:59:39.000000000 -0500
+@@ -60,7 +60,7 @@ static char rcsid[] = "$TOG: XmIm.c /mai
+ #include <Xm/PrimitiveP.h>
+ #include <Xm/VendorSEP.h>
+ #include <Xm/VendorSP.h>
+-#include <Xm/XmosP.h> /* for bzero */
++#include <Xm/XmosP.h>
+ #include "BaseClassI.h"
+ #include "MessagesI.h"
+ #include "XmI.h"
+@@ -1035,7 +1035,7 @@ recreate_xic_info(XIC xic,
+
+ /* This XIC must have been created by the application directly. */
+ xic_info = XtNew(XmImXICRec);
+- bzero((char*) xic_info, sizeof(XmImXICRec));
++ memset((char*) xic_info, 0, sizeof(XmImXICRec));
+ (void) XGetICValues(xic, XNInputStyle, &xic_info->input_style, NULL);
+ xic_info->next = im_info->iclist;
+ im_info->iclist = xic_info;
+@@ -1128,11 +1128,11 @@ create_xic_info(Widget shell,
+
+ /* Create the XIC info record. */
+ xic_info = XtNew(XmImXICRec);
+- bzero((char*) xic_info, sizeof(XmImXICRec));
++ memset((char*) xic_info, 0, sizeof(XmImXICRec));
+ xic_info->input_style = style;
+ xic_info->anonymous = True;
+ xic_info->preedit_buffer = XtNew(PreeditBufferRec);
+- bzero((char *) xic_info->preedit_buffer, sizeof(PreeditBufferRec));
++ memset((char *) xic_info->preedit_buffer, 0, sizeof(PreeditBufferRec));
+
+ xic_info->next = im_info->iclist;
+ im_info->iclist = xic_info;
+@@ -1215,9 +1215,9 @@ set_values(Widget w,
+ icp->focus_window && icp->focus_window != XtWindow(w))
+ return;
+
+- bzero((char*) &status_vlist, sizeof(VaArgListRec));
+- bzero((char*) &preedit_vlist, sizeof(VaArgListRec));
+- bzero((char*) &xic_vlist, sizeof(VaArgListRec));
++ memset((char*) &status_vlist, 0, sizeof(VaArgListRec));
++ memset((char*) &preedit_vlist, 0, sizeof(VaArgListRec));
++ memset((char*) &xic_vlist, 0, sizeof(VaArgListRec));
+ for (i = num_args; i > 0; i--, argp++) {
+ name = XrmStringToName(argp->name);
+ if (name == area_name && !(icp->input_style & XIMPreeditPosition))
+@@ -1490,7 +1490,7 @@ ImPreeditDoneCallback(XIC xic,
+ XtFree((char *)icp->preedit_buffer->text);
+ if (icp->preedit_buffer->feedback)
+ XtFree((char *)icp->preedit_buffer->feedback);
+- bzero((char *)icp->preedit_buffer, sizeof(PreeditBufferRec));
++ memset((char *)icp->preedit_buffer, 0, sizeof(PreeditBufferRec));
+ }
+
+ static void
+@@ -1589,9 +1589,9 @@ ImPreeditDrawCallback(XIC xic,
+ text->length * sizeof(XIMFeedback));
+
+ pb->length = pb->length + text->length - data->chg_length;
+- bzero((char *)pb->text + pb->length * sizeof(wchar_t),
++ memset((char *)pb->text + pb->length * sizeof(wchar_t), 0,
+ sizeof(wchar_t));
+- bzero((char *)pb->feedback + pb->length * sizeof(XIMFeedback),
++ memset((char *)pb->feedback + pb->length * sizeof(XIMFeedback), 0,
+ sizeof(XIMFeedback));
+
+ XtFree((char *) wchar);
+@@ -1609,9 +1609,9 @@ ImPreeditDrawCallback(XIC xic,
+ ml * sizeof(XIMFeedback));
+
+ pb->length = pb->length - data->chg_length;
+- bzero((char *)pb->text + pb->length * sizeof(wchar_t),
++ memset((char *)pb->text + pb->length * sizeof(wchar_t), 0,
+ data->chg_length * sizeof(wchar_t));
+- bzero((char *)pb->feedback + pb->length * sizeof(XIMFeedback),
++ memset((char *)pb->feedback + pb->length * sizeof(XIMFeedback), 0,
+ data->chg_length * sizeof(XIMFeedback));
+ }
+
+@@ -2217,7 +2217,7 @@ get_xim_info(Widget widget)
+
+ /* Create a record so that we only try XOpenIM() once. */
+ xim_info = XtNew(XmImDisplayRec);
+- bzero((char*) xim_info, sizeof(XmImDisplayRec));
++ memset((char*) xim_info, 0, sizeof(XmImDisplayRec));
+ xmDisplay->display.xmim_info = (XtPointer)xim_info;
+
+ /* Setup any specified locale modifiers. */
+@@ -2305,7 +2305,7 @@ get_im_info_ptr(Widget w,
+ if ((ve->vendor.im_info == NULL) && create)
+ {
+ im_info = XtNew(XmImShellRec);
+- bzero((char*) im_info, sizeof(XmImShellRec));
++ memset((char*) im_info, 0, sizeof(XmImShellRec));
+ ve->vendor.im_info = (XtPointer)im_info;
+
+ xim_info = get_xim_info(p);
+diff -rup a/lib/Xm/XmosP.h b/lib/Xm/XmosP.h
+--- a/lib/Xm/XmosP.h 2002-06-17 16:36:30.000000000 -0400
++++ b/lib/Xm/XmosP.h 2008-02-27 13:00:08.000000000 -0500
+@@ -42,8 +42,8 @@
+ #ifndef _XmosP_h
+ #define _XmosP_h
+
+-/* Some SVR4 systems don't have bzero. */
+-#include <Xm/Xmfuncs.h> /* for bzero et al */
++
++#include <Xm/Xmfuncs.h>
+
+ /*
+ * Fix for 8975 - using LOGNAME instead of USER on SYSV and SVR4
+diff -rup a/lib/Xm/Xmos_r.h b/lib/Xm/Xmos_r.h
+--- a/lib/Xm/Xmos_r.h 2002-06-17 16:36:30.000000000 -0400
++++ b/lib/Xm/Xmos_r.h 2008-02-27 13:01:20.000000000 -0500
+@@ -502,13 +502,13 @@ typedef struct {
+ struct servent_data sdata;
+ } _Xgetservbynameparams;
+ # define _XGethostbyname(h,hp) \
+- (bzero((char*)&(hp).hdata,sizeof((hp).hdata)), \
++ (memset((char*)&(hp).hdata,sizeof((hp).hdata)), 0, \
+ ((gethostbyname_r((h),&(hp).hent,&(hp).hdata) == -1) ? NULL : &(hp).hent))
+ # define _XGethostbyaddr(a,al,t,hp) \
+- (bzero((char*)&(hp).hdata,sizeof((hp).hdata)), \
++ (memset((char*)&(hp).hdata,sizeof((hp).hdata)), 0, \
+ ((gethostbyaddr_r((a),(al),(t),&(hp).hent,&(hp).hdata) == -1) ? NULL : &(hp).hent))
+ # define _XGetservbyname(s,p,sp) \
+- (bzero((char*)&(sp).sdata,sizeof((sp).sdata)), \
++ (memset((char*)&(sp).sdata,sizeof((sp).sdata)), 0, \
+ ((getservbyname_r((s),(p),&(sp).sent,&(sp).sdata) == -1) ? NULL : &(sp).sent) )
+ # endif
+ # ifdef X_POSIX_THREAD_SAFE_FUNCTIONS
+diff -rup a/lib/Xm/Xmpoll.h b/lib/Xm/Xmpoll.h
+--- a/lib/Xm/Xmpoll.h 2002-06-17 16:36:30.000000000 -0400
++++ b/lib/Xm/Xmpoll.h 2008-02-27 13:01:38.000000000 -0500
+@@ -110,7 +110,7 @@ typedef struct fd_set {
+ #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & ((fd_mask)1 << ((n) % NFDBITS)))
+ #endif
+ #ifndef FD_ZERO
+-#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
++#define FD_ZERO(p) memset((char *)(p), 0, sizeof(*(p)))
+ #endif
+
+ /*
+diff -rup a/lib/Xm/XmRenderT.c b/lib/Xm/XmRenderT.c
+--- a/lib/Xm/XmRenderT.c 2005-09-07 05:06:10.000000000 -0400
++++ b/lib/Xm/XmRenderT.c 2008-02-27 13:02:27.000000000 -0500
+@@ -435,7 +435,7 @@ GetResources(XmRendition rend,
+ /* Initialize found */
+ if (found == NULL)
+ found = (Boolean *)XtMalloc(_XmNumRenditionResources * sizeof(Boolean));
+- bzero(found, _XmNumRenditionResources * sizeof(Boolean));
++ memset(found, 0, _XmNumRenditionResources * sizeof(Boolean));
+
+ /* Compile names and classes. */
+ if (wid != NULL)
+@@ -588,7 +588,7 @@ GetResources(XmRendition rend,
+ memcpy(((char *)GetPtr(rend) + res->xrm_offset),
+ value.addr, res->xrm_size);
+ else
+- bzero(((char *)GetPtr(rend) + res->xrm_offset), res->xrm_size);
++ memset(((char *)GetPtr(rend) + res->xrm_offset), 0, res->xrm_size);
+ }
+
+ }
+@@ -1185,7 +1185,7 @@ CloneRendition(XmRendition rend)
+ if (rend == NULL) return(NULL);
+
+ copy = (_XmRendition)XtMalloc(sizeof(_XmRenditionRec));
+- bzero((char*)copy, sizeof(_XmRenditionRec));
++ memset((char*)copy, 0, sizeof(_XmRenditionRec));
+ copy_handle = GetHandle(_XmRendition);
+ SetPtr(copy_handle, copy);
+
+@@ -1341,7 +1341,7 @@ XmRenderTableAddRenditions(XmRenderTable
+ {
+ matches =
+ (Boolean *)ALLOCATE_LOCAL(rendition_count * sizeof(Boolean));
+- bzero(matches, rendition_count * sizeof(Boolean));
++ memset(matches, 0, rendition_count * sizeof(Boolean));
+
+ /* May have to copy table if shared. */
+ if (_XmRTRefcount(oldtable) > 1)
+@@ -2201,7 +2201,7 @@ _XmRenditionCreate(Display *display,
+
+ /* Allocate rendition. */
+ rend_int = (_XmRendition)XtMalloc(sizeof(_XmRenditionRec));
+- bzero((char*)rend_int, sizeof(_XmRenditionRec));
++ memset((char*)rend_int, 0, sizeof(_XmRenditionRec));
+ rend = GetHandle(_XmRendition);
+ SetPtr(rend, rend_int);
+
+diff -rup a/lib/Xm/XmString.c b/lib/Xm/XmString.c
+--- a/lib/Xm/XmString.c 2005-12-19 05:32:36.000000000 -0500
++++ b/lib/Xm/XmString.c 2008-02-27 13:03:31.000000000 -0500
+@@ -3133,7 +3133,7 @@ XmStringExtent(
+ XmRendition rend;
+ _XmStringArraySegRec array_seg;
+
+- bzero((char*) &scratch, sizeof(_XmRenditionRec));
++ memset((char*) &scratch, 0, sizeof(_XmRenditionRec));
+ tmp = &scratch;
+ rend = &tmp;
+
+@@ -4087,7 +4087,7 @@ _XmStringDrawSegment(Display *d,
+ * text data, since optimized string does not have padding.
+ */
+ {
+- bzero((char*)&under_seg, sizeof(_XmStringOptSegRec));
++ memset((char*)&under_seg, 0, sizeof(_XmStringOptSegRec));
+ _XmEntryType(&under_seg) = XmSTRING_ENTRY_OPTIMIZED;
+ _XmEntryTagIndex(&under_seg) = _XmStrTagIndex(*underline);
+ _XmEntryByteCountSet(&under_seg, _XmStrByteCount(*underline));
+@@ -5069,10 +5069,10 @@ _render(Display *d,
+ if (!string) return;
+
+ tmp1 = &scratch1;
+- bzero((char *)tmp1, sizeof(_XmRenditionRec));
++ memset((char *)tmp1, 0, sizeof(_XmRenditionRec));
+ rend1 = &tmp1;
+ tmp2 = &scratch2;
+- bzero((char *)tmp2, sizeof(_XmRenditionRec));
++ memset((char *)tmp2, 0, sizeof(_XmRenditionRec));
+ rend2 = &tmp2;
+
+ _XmRendDisplay(rend1) = _XmRendDisplay(rend2) = d;
+@@ -7010,7 +7010,7 @@ XmStringBaseline(
+ _XmProcessLock();
+ }
+ #endif
+- bzero((char*) &scratch, sizeof(_XmRenditionRec));
++ memset((char*) &scratch, 0, sizeof(_XmRenditionRec));
+ tmp = &scratch;
+ rend = &tmp;
+
+@@ -7095,7 +7095,7 @@ _XmStringGetBaselines(XmRenderTable rend
+ *baselines = (Dimension*) XtMalloc(*line_count * sizeof(Dimension));
+
+ /* Initialize the scratch rendition for tabs. */
+- bzero((char*) &scratch, sizeof(_XmRenditionRec));
++ memset((char*) &scratch, 0, sizeof(_XmRenditionRec));
+ _XmRendDisplay(rend) =
+ ((_XmRTDisplay(rendertable) == NULL) ?
+ _XmGetDefaultDisplay() : _XmRTDisplay(rendertable));
+@@ -9057,7 +9057,7 @@ XmeStringGetComponent(_XmStringContext c
+ {
+ char* tmp = XtMalloc(char_count + sizeof(wchar_t));
+ memcpy(tmp, seg_text, char_count);
+- bzero(tmp + char_count, sizeof(wchar_t));
++ memset(tmp + char_count, 0, sizeof(wchar_t));
+ *value = (XtPointer) tmp;
+ }
+ else
+@@ -9207,7 +9207,7 @@ _XmStringContextReInit(_XmStringContext
+ _XmString string)
+ {
+ assert(context != NULL);
+- bzero((char*) context, sizeof(_XmStringContextRec));
++ memset((char*) context, 0, sizeof(_XmStringContextRec));
+
+ _XmStrContString(context) = string;
+ _XmStrContOpt(context) = _XmStrOptimized(string);
+@@ -9526,7 +9526,7 @@ XmParseMappingCreate(ArgList arg_list,
+ {
+ /* Allocate and initialize the return value. */
+ XmParseMapping result = XtNew(_XmParseMappingRec);
+- bzero((char*)result, sizeof(_XmParseMappingRec));
++ memset((char*)result, 0, sizeof(_XmParseMappingRec));
+
+ /* Default values are established by bzero().
+ *
+diff -rup a/lib/Xm/XmStringFunc.c b/lib/Xm/XmStringFunc.c
+--- a/lib/Xm/XmStringFunc.c 2002-01-10 15:57:05.000000000 -0500
++++ b/lib/Xm/XmStringFunc.c 2008-02-27 13:03:50.000000000 -0500
+@@ -715,7 +715,7 @@ XmStringTableProposeTablist(XmStringTabl
+ return ((XmTabList)NULL);
+ }
+
+- bzero((char*) &scratch, sizeof(_XmRenditionRec));
++ memset((char*) &scratch, 0, sizeof(_XmRenditionRec));
+ tmp = &scratch;
+ rend = &tmp;
+
+diff -rup a/lib/Xm/XmStringI.h b/lib/Xm/XmStringI.h
+--- a/lib/Xm/XmStringI.h 2002-01-04 16:23:19.000000000 -0500
++++ b/lib/Xm/XmStringI.h 2008-02-27 13:05:00.000000000 -0500
+@@ -492,7 +492,7 @@ typedef struct __XmStringArraySegRec *_X
+ { \
+ switch (type) { \
+ case XmSTRING_OPTIMIZED : \
+- bzero((char*)str, sizeof(_XmStringOptRec)); \
++ memset((char*)str, 0, sizeof(_XmStringOptRec)); \
+ _XmStrType(str) = type; \
+ _XmStrTextType(str) = XmNO_TEXT; \
+ _XmStrDirection(str) = XmSTRING_DIRECTION_UNSET; \
+@@ -501,7 +501,7 @@ typedef struct __XmStringArraySegRec *_X
+ _XmStrRefCountSet(str, 1); \
+ break; \
+ case XmSTRING_MULTIPLE_ENTRY : \
+- bzero((char*)str, sizeof(_XmStringMultiRec)); \
++ memset((char*)str, 0, sizeof(_XmStringMultiRec)); \
+ _XmStrType(str) = type; \
+ _XmStrRefCountSet(str, 1); \
+ break; \
+@@ -524,7 +524,7 @@ typedef struct __XmStringArraySegRec *_X
+ (str) = (_XmString) \
+ _XmStrMalloc(sizeof(_XmStringOptRec) + \
+ (text_len ? (text_len - TEXT_BYTES_IN_STRUCT) : 0)); \
+- bzero((char*)str, sizeof(_XmStringOptRec)); \
++ memset((char*)str, 0, sizeof(_XmStringOptRec)); \
+ _XmStrType(str) = type; \
+ _XmStrTextType(str) = XmNO_TEXT; \
+ _XmStrDirection(str) = XmSTRING_DIRECTION_UNSET; \
+@@ -535,7 +535,7 @@ typedef struct __XmStringArraySegRec *_X
+ break; \
+ case XmSTRING_MULTIPLE_ENTRY : \
+ (str) = (_XmString)_XmStrMalloc(sizeof(_XmStringMultiRec)); \
+- bzero((char*)str, sizeof(_XmStringMultiRec)); \
++ memset((char*)str, 0, sizeof(_XmStringMultiRec)); \
+ _XmStrType(str) = type; \
+ _XmStrRefCountSet(str, 1); \
+ break; \
+@@ -661,15 +661,15 @@ typedef struct __XmStringArraySegRec *_X
+ { \
+ switch (type) { \
+ case XmSTRING_ENTRY_OPTIMIZED : \
+- bzero((char*)entry, sizeof(_XmStringOptSegRec)); \
++ memset((char*)entry, 0, sizeof(_XmStringOptSegRec)); \
+ _XmEntryTagIndex(entry) = TAG_INDEX_UNSET; \
+ _XmEntryRendIndex(entry) = REND_INDEX_UNSET; \
+ break; \
+ case XmSTRING_ENTRY_ARRAY : \
+- bzero((char*)entry, sizeof(_XmStringArraySegRec)); \
++ memset((char*)entry, 0, sizeof(_XmStringArraySegRec)); \
+ break; \
+ case XmSTRING_ENTRY_UNOPTIMIZED : \
+- bzero((char*)entry, sizeof(_XmStringUnoptSegRec)); \
++ memset((char*)entry, 0, sizeof(_XmStringUnoptSegRec)); \
+ break; \
+ } \
+ _XmEntryType(entry) = type; \
+@@ -683,17 +683,17 @@ typedef struct __XmStringArraySegRec *_X
+ switch (type) { \
+ case XmSTRING_ENTRY_OPTIMIZED : \
+ (entry) = (_XmStringEntry)XtMalloc(sizeof(_XmStringOptSegRec)); \
+- bzero((char*)entry, sizeof(_XmStringOptSegRec)); \
++ memset((char*)entry, 0, sizeof(_XmStringOptSegRec)); \
+ _XmEntryTagIndex(entry) = TAG_INDEX_UNSET; \
+ _XmEntryRendIndex(entry) = REND_INDEX_UNSET; \
+ break; \
+ case XmSTRING_ENTRY_ARRAY : \
+ (entry) = (_XmStringEntry)XtMalloc(sizeof(_XmStringArraySegRec)); \
+- bzero((char*)entry, sizeof(_XmStringArraySegRec)); \
++ memset((char*)entry, 0, sizeof(_XmStringArraySegRec)); \
+ break; \
+ case XmSTRING_ENTRY_UNOPTIMIZED : \
+ (entry) = (_XmStringEntry)XtMalloc(sizeof(_XmStringUnoptSegRec)); \
+- bzero((char*)entry, sizeof(_XmStringUnoptSegRec)); \
++ memset((char*)entry, 0, sizeof(_XmStringUnoptSegRec)); \
+ break; \
+ } \
+ if (entry) { \
+diff -rup a/lib/Xm/XmStringSeg.c b/lib/Xm/XmStringSeg.c
+--- a/lib/Xm/XmStringSeg.c 2002-01-10 15:57:06.000000000 -0500
++++ b/lib/Xm/XmStringSeg.c 2008-02-27 13:05:16.000000000 -0500
+@@ -291,7 +291,7 @@ _XmStringGetSegment(_XmStringContext c
+ {
+ char *tmp = XtMalloc(*char_count + sizeof(wchar_t));
+ memcpy(tmp, *text, *char_count);
+- bzero(tmp + *char_count, sizeof(wchar_t));
++ memset(tmp + *char_count, 0, sizeof(wchar_t));
+
+ *text = (XtPointer) tmp;
+ }
+diff -rup a/lib/Xm/XmTabList.c b/lib/Xm/XmTabList.c
+--- a/lib/Xm/XmTabList.c 2002-01-30 10:47:25.000000000 -0500
++++ b/lib/Xm/XmTabList.c 2008-02-27 13:00:38.000000000 -0500
+@@ -225,7 +225,7 @@ _XmCreateTabList(Widget parent,
+ if (_XmRendTabs(rend) == NULL)
+ {
+ tl = (XmTabList)XtMalloc(sizeof(_XmTabListRec));
+- bzero((char *)tl, sizeof(_XmTabListRec));
++ memset((char *)tl, 0, sizeof(_XmTabListRec));
+ _XmRendTabs(rend) = tl;
+ }
+
+diff -rup a/lib/Xm/Xpmcreate.c b/lib/Xm/Xpmcreate.c
+--- a/lib/Xm/Xpmcreate.c 2005-12-06 12:31:15.000000000 -0500
++++ b/lib/Xm/Xpmcreate.c 2008-02-27 12:55:24.000000000 -0500
+@@ -2254,7 +2254,7 @@ ParseAndPutPixels(dc, data, width, heigh
+ if (ncolors > 256)
+ return (XpmFileInvalid);
+
+- bzero((char *)colidx, 256 * sizeof(short));
++ memset((char *)colidx, 0, 256 * sizeof(short));
+ for (a = 0; a < ncolors; a++)
+ colidx[(unsigned char)colorTable[a].string[0]] = a + 1;
+
+@@ -2296,7 +2296,7 @@ if (cidx[f]) XpmFree(cidx[f]);}
+ unsigned short *cidx[256];
+ unsigned int char1;
+
+- bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */
++ memset((char *)cidx, 0, 256 * sizeof(unsigned short *)); /* init */
+ for (a = 0; a < ncolors; a++) {
+ char1 = (unsigned char) colorTable[a].string[0];
+ if (cidx[char1] == NULL) { /* get new memory */
+diff -rup a/lib/Xm/XpmI.h b/lib/Xm/XpmI.h
+--- a/lib/Xm/XpmI.h 2005-12-05 11:31:46.000000000 -0500
++++ b/lib/Xm/XpmI.h 2008-02-27 12:55:57.000000000 -0500
+@@ -139,9 +139,9 @@ extern FILE *popen();
+ #ifndef bcopy
+ #define bcopy(source, dest, count) memcpy(dest, source, count)
+ #endif
+-#ifndef bzero
+-#define bzero(b, len) memset(b, 0, len)
+-#endif
++//#ifndef bzero
++//#define bzero(b, len) memset(b, 0, len)
++//#endif
+ #endif
+
+ /* the following is defined in X11R6 but not in previous versions */
+diff -rup a/lib/Xm/Xpmparse.c b/lib/Xm/Xpmparse.c
+--- a/lib/Xm/Xpmparse.c 2005-12-05 11:31:46.000000000 -0500
++++ b/lib/Xm/Xpmparse.c 2008-02-27 12:56:18.000000000 -0500
+@@ -555,7 +555,7 @@ ParsePixels(data, width, height, ncolors
+ return (XpmFileInvalid);
+ }
+
+- bzero((char *)colidx, 256 * sizeof(short));
++ memset((char *)colidx, 0, 256 * sizeof(short));
+ for (a = 0; a < ncolors; a++)
+ colidx[(unsigned char)colorTable[a].string[0]] = a + 1;
+
+@@ -591,7 +591,7 @@ do \
+ unsigned short *cidx[256];
+ unsigned int char1;
+
+- bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */
++ memset((char *)cidx, 0, 256 * sizeof(unsigned short *)); /* init */
+ for (a = 0; a < ncolors; a++) {
+ char1 = (unsigned char) colorTable[a].string[0];
+ if (cidx[char1] == NULL) { /* get new memory */
+
diff --git a/package/openmotif/openmotif.mk b/package/openmotif/openmotif.mk
new file mode 100644
index 000000000..5650a19b0
--- /dev/null
+++ b/package/openmotif/openmotif.mk
@@ -0,0 +1,94 @@
+#############################################################
+#
+# openmotif
+#
+#############################################################
+
+OPENMOTIF_VERSION = 2.3.0
+OPENMOTIF_SOURCE = openmotif-$(OPENMOTIF_VERSION).tar.gz
+OPENMOTIF_SITE = ftp://ftp.ics.com/openmotif/2.3/2.3.0
+OPENMOTIF_CAT:=$(ZCAT)
+OPENMOTIF_DIR:=$(BUILD_DIR)/openmotif-$(OPENMOTIF_VERSION)
+OPENMOTIF_HOST_DIR:=$(BUILD_DIR)/openmotif-$(OPENMOTIF_VERSION)-host
+
+$(DL_DIR)/$(OPENMOTIF_SOURCE):
+ $(WGET) -P $(DL_DIR) $(OPENMOTIF_SITE)/$(OPENMOTIF_SOURCE)
+
+openmotif-source: $(DL_DIR)/$(OPENMOTIF_SOURCE)
+
+$(OPENMOTIF_DIR)/.unpacked: $(DL_DIR)/$(OPENMOTIF_SOURCE)
+ $(OPENMOTIF_CAT) $(DL_DIR)/$(OPENMOTIF_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(CONFIG_UPDATE) $(OPENMOTIF_DIR)
+ cp -a $(OPENMOTIF_DIR) $(OPENMOTIF_DIR)-host
+ toolchain/patch-kernel.sh $(OPENMOTIF_DIR) package/openmotif/ \*.patch
+ touch $(OPENMOTIF_DIR)/.unpacked
+
+$(OPENMOTIF_HOST_DIR)/.configured: $(OPENMOTIF_DIR)/.unpacked
+ (if [ ! -e "/usr/include/X11/extensions/Print.h" ]; then \
+ echo "Please install libXp-devel and re-run make."; \
+ exit 1; fi )
+ (if [ ! -e "/usr/include/X11/bitmaps" ]; then \
+ echo "Please install xorg-x11-xbitmaps and re-run make."; \
+ exit 1; fi )
+ (cd $(OPENMOTIF_HOST_DIR); rm -rf config.cache; \
+ aclocal; automake --foreign --add-missing; autoconf; \
+ ./configure \
+ --prefix=/usr -C;);
+ touch $(OPENMOTIF_HOST_DIR)/.configured
+
+$(OPENMOTIF_DIR)/.configured: $(OPENMOTIF_HOST_DIR)/.configured
+ (cd $(OPENMOTIF_DIR); rm -rf config.cache; \
+ aclocal; automake --foreign --add-missing; autoconf; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ac_cv_file__usr_X_include_X11_X_h=yes \
+ ac_cv_func_setpgrp_void=yes \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --includedir=/usr/include \
+ --with-x --program-prefix="" \
+ );
+ touch $(OPENMOTIF_DIR)/.configured
+
+$(OPENMOTIF_HOST_DIR)/.done: $(OPENMOTIF_DIR)/.configured
+ $(MAKE) -C $(OPENMOTIF_HOST_DIR)
+ ln -s -f $(OPENMOTIF_HOST_DIR)/config/util/makestrs $(OPENMOTIF_DIR)/config/util/makestrs-host
+ ln -s -f $(OPENMOTIF_HOST_DIR)/tools/wml/wmluiltok $(OPENMOTIF_DIR)/tools/wml/wmluiltok-host
+ ln -s -f $(OPENMOTIF_HOST_DIR)/tools/wml/wml $(OPENMOTIF_DIR)/tools/wml/wml-host
+ ln -s -f $(OPENMOTIF_HOST_DIR)/tools/wml/wmldbcreate $(OPENMOTIF_DIR)/tools/wml/wmldbcreate-host
+ mkdir -p $(OPENMOTIF_DIR)/tools/wml/.libs
+ ln -s -f $(OPENMOTIF_HOST_DIR)/tools/wml/.libs/lt-wmldbcreate $(OPENMOTIF_DIR)/tools/wml/.libs/lt-wmldbcreate-host
+ mkdir -p $(OPENMOTIF_DIR)/demos/lib/Exm/wml/.libs
+ ln -s -f $(OPENMOTIF_HOST_DIR)/demos/lib/Exm/wml/.libs/lt-wmldbcreate $(OPENMOTIF_DIR)/demos/lib/Exm/wml/.libs/lt-wmldbcreate-host
+ mkdir -p $(OPENMOTIF_DIR)/clients/uil/.libs
+ ln -s -f $(OPENMOTIF_HOST_DIR)/clients/uil/.libs/lt-uil $(OPENMOTIF_DIR)/clients/uil/.libs/lt-uil-host
+ touch $(OPENMOTIF_HOST_DIR)/.done
+
+$(OPENMOTIF_DIR)/.done: $(OPENMOTIF_HOST_DIR)/.done
+ $(MAKE) -C $(OPENMOTIF_DIR)
+ $(MAKE) -C $(OPENMOTIF_DIR) install DESTDIR=$(STAGING_DIR)
+ $(MAKE) -C $(OPENMOTIF_DIR) install DESTDIR=$(TARGET_DIR)
+ touch $(OPENMOTIF_DIR)/.done
+
+openmotif: uclibc $(OPENMOTIF_DIR)/.done
+
+openmotif-clean:
+ rm -f $(TARGET_DIR)/bin/openmotif
+ -$(MAKE) -C $(OPENMOTIF_DIR) clean
+
+openmotif-dirclean:
+ rm -rf $(OPENMOTIF_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_OPENMOTIF)),y)
+TARGETS+=openmotif
+endif