diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 0043f7deb78..00cd7260fca 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -125,8 +125,8 @@ TERMCAP = -ltermcap
 
 # Libraries and corresponding dependencies for compiling gdb.
 # {X,T}M_CLIBS, defined in *config files, have host- and target-dependent libs.
-# TERMCAP comes last, since readline depends on it.
-CLIBS = $(XM_CLIBS) ${TM_CLIBS} ${BFD_LIB} ${LIBIBERTY} ${RL_LIB} ${TERMCAP}
+# TERMCAP comes after readline, since readline depends on it.
+CLIBS = ${BFD_LIB} ${LIBIBERTY} ${RL_LIB} ${TERMCAP} ${XM_CLIBS} ${TM_CLIBS}
 CDEPS = ${XM_CDEPS} ${TM_CDEPS} ${BFD_LIB} ${LIBIBERTY} ${RL_LIB}
 
 ADD_FILES = ${REGEX} ${ALLOCA}  ${GNU_MALLOC} ${XM_ADD_FILES} ${TM_ADD_FILES}
@@ -316,7 +316,7 @@ gdb1: gdb
 # remote support.
 rapp: $(RAPP_OBS)
 	rm -f rapp_init.c
-	${srcdir}/munch ${RAPP_OBS} > rapp_init.c
+	${srcdir}/munch ${MUNCH_DEFINE} ${RAPP_OBS} > rapp_init.c
 	${CC-LD} $(LDFLAGS) -o $@ rapp_init.c $(RAPP_OBS)
 	
 # Support for building Makefile out of configured pieces, automatically
diff --git a/gdb/munch b/gdb/munch
index 92929eada19..6bffb88fa04 100755
--- a/gdb/munch
+++ b/gdb/munch
@@ -7,12 +7,15 @@ echo 'void initialize_all_files () {'
 
 NMOPT=""
 case $1 in
--*)	NMOPT=$1; shift ;;
+MUNCH_NM=*)
+	MUNCH_NM=`echo $1 | sed 's/MUNCH_NM=//'`; shift ;;
+-*)
+	NMOPT=$1; shift ;;
 esac
 
 # make it easy to use a different nm, e.g. for cross-developing
 
-MUNCH_NM="nm $NMOPT"
+MUNCH_NM="${MUNCH_NM-nm} $NMOPT"
 if test "`$MUNCH_NM main.o | egrep 'T _?main$'`" = "" ; then
     # System V style nm
     shift;
@@ -20,8 +23,9 @@ if test "`$MUNCH_NM main.o | egrep 'T _?main$'`" = "" ; then
 	sed -e 's/^.*\(_initialize_[a-zA-Z0-9_]*\)[^a-zA-Z0-9_].*$/   {extern void \1 (); \1 ();}/'
 else
     # BSD style nm
-    $MUNCH_NM -p $* | egrep 'T *_?_initialize_' | \
-	sed -e 's/^.*T *_*\(.*\)/    {extern void _\1 (); _\1 ();}/'
+    # We now accept either text or data symbols, since the RT/PC uses data.
+    $MUNCH_NM -p $* | egrep '[TD] *_?_initialize_' | \
+	sed -e 's/^.*[TD] *_*\(.*\)/    {extern void _\1 (); _\1 ();}/'
 fi
 
 echo '}'