Module Name:    src
Committed By:   mrg
Date:           Sun Mar 28 04:29:35 UTC 2010

Modified Files:
        src/sys/rump: Makefile.rump

Log Message:
apply a patch from dennis fergusson:

fix the powerpc64 quirk handling by introducing a prefix quirk and
using it as appropriate.  fix the (postfix) quirk.

now rump and powerpc64 get along nicely.


To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.55 src/sys/rump/Makefile.rump

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/Makefile.rump
diff -u src/sys/rump/Makefile.rump:1.54 src/sys/rump/Makefile.rump:1.55
--- src/sys/rump/Makefile.rump:1.54	Mon Mar 22 05:39:00 2010
+++ src/sys/rump/Makefile.rump	Sun Mar 28 04:29:34 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.rump,v 1.54 2010/03/22 05:39:00 mrg Exp $
+#	$NetBSD: Makefile.rump,v 1.55 2010/03/28 04:29:34 mrg Exp $
 #
 
 WARNS?=		3	# XXX: src/sys won't compile with -Wsign-compare yet
@@ -70,7 +70,22 @@
 .elif ${MACHINE_CPU} == "hppa"
 _SYMQUIRK='|\$$\$$'
 .elif ${MACHINE_ARCH} == "powerpc64"
-_SYMQUIRK='|\.(rump|RUMP)'
+_SYMQUIRK="|PF_funcs"
+.endif
+
+#
+# Prefix quirks.  At least one toolchain generates global
+# symbols with prefixes which really need to remain as prefixes
+# (i.e. the '.' on the front of some ppc64 globals).  The
+# way to know if you have the problem is if you get later
+# complaints about symbols like 'rumpns_XrumpBLAH' or 'XrumpBLAH';
+# the 'X' part was added by the toolchain and will need to
+# be mentioned here.
+# 
+.if ${MACHINE_ARCH} == "powerpc64"
+_PQ="\.?"
+.else
+_PQ=
 .endif
 
 rump_symren: __archivebuild
@@ -94,8 +109,8 @@
 	${AR} ${_ARFL} ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}`
 .endif
 	${NM} -go ${RUMP_SYMREN:U${.TARGET}} | ${TOOL_AWK} '	\
-	    $$NF!~/^(rump|RUMP|__|_GLOBAL_OFFSET_TABLE'${_SYMQUIRK}')/ \
-	      {printf "%s rumpns_%s\n", $$NF, $$NF}' \
+	    $$NF!~/^'${_PQ}'(rump|RUMP|__|_GLOBAL_OFFSET_TABLE'${_SYMQUIRK}')/ \
+	      {s = $$NF; sub(/^'${_PQ}'/, "&rumpns_", s); print $$NF, s}' \
 	    | sort | uniq  > renametab.${.TARGET}
 	${OBJCOPY} --preserve-dates --redefine-syms \
 	    renametab.${.TARGET} ${RUMP_SYMREN:U${.TARGET}}

Reply via email to