diff --git a/src/backend/port/Makefile b/src/backend/port/Makefile
index 62b6341358441fd7b261dc7541ef9bd935bdaaf5..be5db0a664b389376d33c0fb59ea67ed41f734db 100644
--- a/src/backend/port/Makefile
+++ b/src/backend/port/Makefile
@@ -13,7 +13,7 @@
 # be converted to Method 2.  
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/backend/port/Makefile,v 1.22 2006/01/05 03:01:35 momjian Exp $
+#    $PostgreSQL: pgsql/src/backend/port/Makefile,v 1.23 2006/04/28 17:09:16 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -48,14 +48,20 @@ win32.dir:
 	$(MAKE) -C win32 all
 
 tas.o: tas.s
+ifeq ($(PORTNAME), solaris)
+	# preprocess assembler file with cpp, used by x86
+	$(CC) $(CFLAGS) -c -P $<
+	mv $*.i $*_cpp.s
+	$(CC) $(CFLAGS) -c $*_cpp.s -o $@
+else
 	$(CC) $(CFLAGS) -c $<
+endif
 
 # IPC test program
 ipc_test: ipc_test.o pg_sema.o pg_shmem.o
 	$(CC) $(CFLAGS) $(LDFLAGS) $(export_dynamic) $^ $(LIBS) -o $@
 
 distclean clean:
-	rm -f SUBSYS.o $(OBJS) ipc_test ipc_test.o
+	rm -f SUBSYS.o $(OBJS) ipc_test ipc_test.o tas_cpp.s
 	$(MAKE) -C darwin clean
 	$(MAKE) -C win32 clean
-