This is a sponsor request to make opensolaris support non-SSE capable x86 cpus 
once again.
It fixes:

Bug ID 6572151
Synopsis snv boot failure since snv_66
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6572151


6572151 is a duplicate of 6332924:

Bug ID 6332924
Synopsis snv_24 /usr/ccs/bin/as adds new HWCAP tags to previously untagged 
objects
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6332924


My contributor agreement # : OS0003

My suggested fix is:

diff -r 258f5f3772da usr/src/lib/libc/i386/Makefile.com
--- a/usr/src/lib/libc/i386/Makefile.com        Fri Jun 29 11:59:22 2007 -0700
+++ b/usr/src/lib/libc/i386/Makefile.com        Sat Jun 30 18:51:26 2007 +0200
@@ -1205,3 +1205,13 @@ pics/errlst.o: ../port/gen/errlst.c
 pics/errlst.o: ../port/gen/errlst.c
 
 pics/new_list.o: ../port/gen/new_list.c
+
+
+# Special postprocessing for 32-bit fpcw.o: strip the SSE HWCAP attribute
+# from the object file; the internal functions with SSE instructions are
+# called conditionally on systems which have SSE instruction support
+pics/fpcw.o := POST_PROCESS_O += ; \
+       $(LD) -r -M ../$(MACH)/mapfile-hwcap_no_sse -o $...@-hwcap_no_sse $@  
&& \
+       $(MV) $...@-hwcap_no_sse $@
+
+pics/fpcw.o: ../$(MACH)/mapfile-hwcap_no_sse
diff -r 258f5f3772da usr/src/lib/libc/i386/mapfile-hwcap_no_sse
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/libc/i386/mapfile-hwcap_no_sse        Sat Jun 30 18:48:24 
2007 +0200
@@ -0,0 +1,35 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident        "%Z%%M% %I%     %E% SMI"
+
+#
+# Fix for cr6332924: linker mapfile used to strip the SSE HWCAP from the
+# 32-bit fpcw.o object file. The resulting libc.so shared library must be
+# usable on machines that don't have SSE support. The two functions in
+# the fpcw.o object that do use SSE instructions are called from libc.so
+# conditionally, only on machines that do have SSE capability.
+#
+
+hwcap_1 = FPU OVERRIDE;
 
 
This message posted from opensolaris.org

Reply via email to