changeset 10814:4f051ff1b998

lib/libc/common/*.s: GNU assembler does not support forward references of label so to get aliases to work they have to be after the declaration of the label being aliased. Makefile.mapfilegnu: To support mapfiles with GNU gcc/gas we need to build source files that contain the mapping information Makefile.master: Need to specify platform specific versions of flags XREGS_FLAG, BDIRECT, and BNODIRECT. tools/cw/cw.c: Add z9/z990 specific flags. uts/s390x/Makefile: Support parallel build stuff by defining prereq targets uts/s390x/vm/Makefile: Support parallel build mechanism
author tide@sirius.devlab.sinenomine.net
date Tue, 19 Aug 2008 11:19:58 -0400
parents c8e5fea49a2a
children 6b9772e86b00
files usr/src/Makefile.mapfilegnu usr/src/Makefile.master usr/src/cmd/fm/ipmitopo/s390/Makefile usr/src/lib/libc/common/sys/access.s usr/src/lib/libc/common/sys/acct.s usr/src/lib/libc/common/sys/alarm.s usr/src/lib/libc/common/sys/chdir.s usr/src/lib/libc/common/sys/chmod.s usr/src/lib/libc/common/sys/chown.s usr/src/lib/libc/common/sys/chroot.s usr/src/lib/libc/common/sys/dup.s usr/src/lib/libc/common/sys/fchdir.s usr/src/lib/libc/common/sys/fchmod.s usr/src/lib/libc/common/sys/fcntl.s usr/src/lib/libc/common/sys/fpathconf.s usr/src/lib/libc/common/sys/fstat.s usr/src/lib/libc/common/sys/fstatvfs.s usr/src/lib/libc/common/sys/getcpuid.s usr/src/lib/libc/common/sys/getdents.s usr/src/lib/libc/common/sys/getegid.s usr/src/lib/libc/common/sys/geteuid.s usr/src/lib/libc/common/sys/getgroups.s usr/src/lib/libc/common/sys/getitimer.s usr/src/lib/libc/common/sys/getppid.s usr/src/lib/libc/common/sys/install_utrap.s usr/src/lib/libc/common/sys/ioctl.s usr/src/lib/libc/common/sys/kill.s usr/src/lib/libc/common/sys/lchown.s usr/src/lib/libc/common/sys/llseek.s usr/src/lib/libc/common/sys/lseek.s usr/src/lib/libc/common/sys/lstat.s usr/src/lib/libc/common/sys/memcntl.s usr/src/lib/libc/common/sys/mkdir.s usr/src/lib/libc/common/sys/mknod.s usr/src/lib/libc/common/sys/mmap.s usr/src/lib/libc/common/sys/mount.s usr/src/lib/libc/common/sys/nice.s usr/src/lib/libc/common/sys/ntp_adjtime.s usr/src/lib/libc/common/sys/ntp_gettime.s usr/src/lib/libc/common/sys/pathconf.s usr/src/lib/libc/common/sys/pcsample.s usr/src/lib/libc/common/sys/readlink.s usr/src/lib/libc/common/sys/resolvepath.s usr/src/lib/libc/common/sys/rmdir.s usr/src/lib/libc/common/sys/setgroups.s usr/src/lib/libc/common/sys/setitimer.s usr/src/lib/libc/common/sys/setreid.s usr/src/lib/libc/common/sys/setrlimit.s usr/src/lib/libc/common/sys/sigaltstk.s usr/src/lib/libc/common/sys/sigsendset.s usr/src/lib/libc/common/sys/stat.s usr/src/lib/libc/common/sys/statvfs.s usr/src/lib/libc/common/sys/symlink.s usr/src/lib/libc/common/sys/sync.s usr/src/lib/libc/common/sys/sysfs.s usr/src/lib/libc/common/sys/sysinfo.s usr/src/lib/libc/common/sys/times.s usr/src/lib/libc/common/sys/ulimit.s usr/src/lib/libc/common/sys/umask.s usr/src/lib/libc/common/sys/umount2.s usr/src/lib/libc/common/sys/unlink.s usr/src/lib/libc/common/sys/utime.s usr/src/lib/libkmf/libkmf/common/generalop.c usr/src/tools/cw/cw.c usr/src/uts/s390x/Makefile usr/src/uts/s390x/vm/Makefile
diffstat 66 files changed, 808 insertions(+), 41 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/Makefile.mapfilegnu	Tue Aug 19 11:19:58 2008 -0400
@@ -0,0 +1,21 @@
+
+# Makefile stub used for helper in building mapfiles from asm
+# This is to resolve the use of mapfiles with GNU build tools
+#
+# NOTE: This process will go away in production builds (using Solaris ld)
+#
+
+#OBJECTS := mapfile.o $(OBJECTS)
+#
+OBJECTS +=  mapfile.o
+
+
+CLEANFILES += mapfile.s 
+
+mapfile.s: $(MAPFILES)
+	cat $(MAPFILES) | $(SRC)/tools/mapfile_gassifier/mapfile_gassifier > mapfile.s
+
+pics/mapfile.o: mapfile.s
+	$(AS) $(ASFLAGS) mapfile.s  $< -o $@
+	$(POST_PROCESS_O)
+#
--- a/usr/src/Makefile.master	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/Makefile.master	Tue Aug 19 11:19:58 2008 -0400
@@ -157,7 +157,7 @@
 SED=		/usr/bin/sed
 NAWK=		/usr/bin/nawk
 CP=		/usr/bin/cp -f
-#MCS=		/usr/ccs/bin/mcs
+MCS=		/usr/ccs/bin/mcs
 CAT=            /usr/bin/cat
 ELFDUMP=	/usr/ccs/bin/elfdump
 M4=		/usr/ccs/bin/m4
@@ -181,7 +181,7 @@
 XREF=		$(ONBLD_TOOLS)/bin/xref
 FIND=		/usr/bin/find
 PERL=		/usr/bin/perl
-PYTHON=		/usr/bin/python
+PYTHON=		/usr/local/bin/python
 SORT=		/usr/bin/sort
 TOUCH=		/usr/bin/touch
 WC=		/usr/bin/wc
@@ -339,7 +339,7 @@
 sparcv9_XARCH=		-xarch=v9
 i386_XARCH=
 amd64_XARCH=		-xarch=amd64 -Ui386 -U__i386
-s390x_XARCH=		-xarch=z9-109
+s390x_XARCH=		-xarch=z9
 
 # assembler '-xarch' flag.  Different from compiler '-xarch' flag.
 sparc_AS_XARCH=		-xarch=v8plus
@@ -402,12 +402,14 @@
 i386_CFLAGS=	$(i386_XARCH)
 amd64_CFLAGS=	$(amd64_XARCH)
 s390x_CFLAGS=	$(s390x_XARCH) -_gcc=-gdwarf-2 -D__s390x -_gcc=-mbackchain
+s390_CFLAGS=	$(s390x_XARCH) -_gcc=-gdwarf-2 -D__s390 -_gcc=-mbackchain -_gcc=-m31
 
 sparc_ASFLAGS=	$(sparc_AS_XARCH)
 sparcv9_ASFLAGS=$(sparcv9_AS_XARCH)
 i386_ASFLAGS=	$(i386_AS_XARCH)
 amd64_ASFLAGS=	$(amd64_AS_XARCH)
 s390x_ASFLAGS=	$(s390x_AS_XARCH)
+s390_ASFLAGS=	$(s390x_AS_XARCH)
 
 #
 sparc_COPTFLAG=		-xO3
@@ -415,6 +417,7 @@
 i386_COPTFLAG=		-O
 amd64_COPTFLAG=		-xO3
 s390x_COPTFLAG=		-xO3 -_gcc=-feliminate-unused-debug-types -_gcc=-mbackchain
+s390_COPTFLAG=		-xO3 -_gcc=-feliminate-unused-debug-types -_gcc=-mbackchain
 
 COPTFLAG= $($(MACH)_COPTFLAG)
 COPTFLAG64= $($(MACH64)_COPTFLAG)
@@ -476,6 +479,7 @@
 i386_SPACEFLAG		= -xspace
 amd64_SPACEFLAG		=
 s390x_SPACEFLAG		=
+s390_SPACEFLAG		=
 
 SPACEFLAG		= $($(MACH)_SPACEFLAG)
 SPACEFLAG64		= $($(MACH64)_SPACEFLAG)
@@ -489,7 +493,8 @@
 sparcv9_IROPTFLAG	= -W2,-xwrap_int
 i386_IROPTFLAG		=
 amd64_IROPTFLAG		=
-s390x_SPACEFLAG		=
+s390x_IROPTFLAG		=
+s390_IROPTFLAG		=
 
 IROPTFLAG		= $($(MACH)_IROPTFLAG)
 IROPTFLAG64		= $($(MACH64)_IROPTFLAG)
@@ -498,7 +503,8 @@
 sparcv9_XREGSFLAG	= -xregs=no%appl
 i386_XREGSFLAG		=
 amd64_XREGSFLAG		=
-s390x_SPACEFLAG		=
+s390x_XREGSFLAG		=
+s390_XREGSFLAG		=
 
 XREGSFLAG		= $($(MACH)_XREGSFLAG)
 XREGSFLAG64		= $($(MACH64)_XREGSFLAG)
@@ -773,10 +779,16 @@
 # Pass -Y flag to cpp (method of which is release-dependent)
 CCYFLAG=		-Y I,
 
-BDIRECT=	-Bdirect
+sparc_BDIRECT=	-Bdirect
+i386_BDIRECT=	-Bdirect
+s390_BDIRECT=	
+BDIRECT=	$($(MACH)_BDIRECT)
 BDYNAMIC=	-Bdynamic
 BLOCAL=		-Blocal
-BNODIRECT=	-Bnodirect
+sparc_BNODIRECT=-Bdirect
+i386_BNODIRECT=	-Bdirect
+s390_BNODIRECT=	
+BNODIRECT=	$($(MACH)_BNODIRECT)
 BREDUCE=	-Breduce
 BSTATIC=	-Bstatic
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/fm/ipmitopo/s390/Makefile	Tue Aug 19 11:19:58 2008 -0400
@@ -0,0 +1,28 @@
+#
+# 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 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+include ../../../Makefile.cmd
+include ../Makefile.com
--- a/usr/src/lib/libc/common/sys/access.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/access.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(access,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(access)
 	RET
 	SET_SIZE(access)
+
+# ifdef __GNUC__
+# undef access
+
+	ANSI_PRAGMA_WEAK2(access,_access,function)
+# endif
--- a/usr/src/lib/libc/common/sys/acct.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/acct.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(acct,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(acct)
 	RETC
 	SET_SIZE(acct)
+
+#ifdef __GNUC__
+# undef acct
+
+	ANSI_PRAGMA_WEAK2(acct,_acct, function)
+#endif
--- a/usr/src/lib/libc/common/sys/alarm.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/alarm.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,17 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(alarm,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(alarm)
 	RET
 	SET_SIZE(alarm)
+
+#ifdef __GNUC__
+# undef alarm
+	ANSI_PRAGMA_WEAK2(alarm,_alarm,function)
+#endif
--- a/usr/src/lib/libc/common/sys/chdir.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/chdir.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(chdir,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(chdir)
 	RETC
 	SET_SIZE(chdir)
+
+#ifdef __GNUC__
+# undef chdir
+
+	ANSI_PRAGMA_WEAK2(chdir,_chdir,function)
+#endif
--- a/usr/src/lib/libc/common/sys/chmod.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/chmod.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(chmod,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(chmod)
 	RETC
 	SET_SIZE(chmod)
+
+#ifdef __GNUC__
+# undef chmod
+
+	ANSI_PRAGMA_WEAK2(chmod,_chmod,function)
+#endif
--- a/usr/src/lib/libc/common/sys/chown.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/chown.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(chown,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(chown)
 	RETC
 	SET_SIZE(chown)
+
+#ifdef __GNUC__
+# undef chown
+
+	ANSI_PRAGMA_WEAK2(chown,_chown,function)
+#endif
--- a/usr/src/lib/libc/common/sys/chroot.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/chroot.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
  
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(chroot,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(chroot)
 	RET
 	SET_SIZE(chroot)
+
+#ifdef __GNUC__
+# undef chroot
+
+	ANSI_PRAGMA_WEAK2(chroot,_chroot,function)
+#endif
--- a/usr/src/lib/libc/common/sys/dup.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/dup.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(dup,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(dup)
 	RET
 	SET_SIZE(dup)
+
+#ifdef __GNUC__
+# undef dup
+	ANSI_PRAGMA_WEAK2(dup,_dup,function)
+
+#endif
--- a/usr/src/lib/libc/common/sys/fchdir.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/fchdir.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(fchdir,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(fchdir)
 	RETC
 	SET_SIZE(fchdir)
+
+#ifdef __GNUC__
+# undef fchdir
+
+	ANSI_PRAGMA_WEAK2(fchdir,_fchdir,function)
+#endif
--- a/usr/src/lib/libc/common/sys/fchmod.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/fchmod.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(fchmod,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(fchmod)
 	RETC
 	SET_SIZE(fchmod)
+
+#ifdef __GNUC__
+# undef fchmod
+
+	ANSI_PRAGMA_WEAK2(fchmod,_fchmod,function)
+#endif
--- a/usr/src/lib/libc/common/sys/fcntl.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/fcntl.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,3 +37,8 @@
 	SYSCALL2_RESTART_RVAL1(__fcntl_syscall,fcntl)
 	RET
 	SET_SIZE(__fcntl_syscall)
+
+#ifdef __GNUC__
+# undef fcntl
+	ANSI_PRAGMA_WEAK2(fcntl,__fcntl,function)
+#endif
--- a/usr/src/lib/libc/common/sys/fpathconf.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/fpathconf.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(fpathconf,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(fpathconf)
 	RET
 	SET_SIZE(fpathconf)
+
+#ifdef __GNUC__
+# undef fpathconf
+
+	ANSI_PRAGMA_WEAK2(fpathconf,_fpathconf,function)
+#endif
--- a/usr/src/lib/libc/common/sys/fstat.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/fstat.s	Tue Aug 19 11:19:58 2008 -0400
@@ -50,6 +50,12 @@
 	RETC
 	SET_SIZE(fstat)
 
+# if defined(__GNUC__)
+# undef fstat
+
+	ANSI_PRAGMA_WEAK2(fstat,_fstat,function)
+# endif
+
 #else
 
 /* C library -- fstat64 transitional large file API		*/
@@ -59,4 +65,10 @@
 	RETC
 	SET_SIZE(fstat64)
 
+# if defined(__GNUC__)
+# undef fstat64
+
+	ANSI_PRAGMA_WEAK2(fstat64,_fstat64,function)
+# endif
+
 #endif
--- a/usr/src/lib/libc/common/sys/fstatvfs.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/fstatvfs.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,12 @@
 
 #include <sys/asm_linkage.h>
 
-#if !defined(_LARGEFILE_SOURCE)
-	ANSI_PRAGMA_WEAK(fstatvfs,function)
-#else
-	ANSI_PRAGMA_WEAK(fstatvfs64,function)
+#ifndef __GNUC__
+	#if !defined(_LARGEFILE_SOURCE)
+		ANSI_PRAGMA_WEAK(fstatvfs,function)
+	#else
+		ANSI_PRAGMA_WEAK(fstatvfs64,function)
+	#endif
 #endif
 
 #include "SYS.h"
@@ -51,6 +53,12 @@
 	RETC
 	SET_SIZE(fstatvfs)
 
+	#ifdef __GNUC__
+	# undef fstatvfs
+
+		ANSI_PRAGMA_WEAK2(fstatvfs,_fstatvfs,function)
+	#endif
+
 #else
 
 /* C library -- fstatvfs64					*/
@@ -59,5 +67,11 @@
 	SYSCALL_RVAL1(fstatvfs64)
 	RETC
 	SET_SIZE(fstatvfs64)
+
+	#ifdef __GNUC__
+	# undef fstatvfs64
+
+		ANSI_PRAGMA_WEAK2(fstatvfs64,_fstatvfs64,function)
+	#endif
 	
 #endif
--- a/usr/src/lib/libc/common/sys/getcpuid.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/getcpuid.s	Tue Aug 19 11:19:58 2008 -0400
@@ -35,7 +35,9 @@
 
 #include "SYS.h"
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(getcpuid,function)
+#endif
 
 /*
  * processorid_t getcpuid(void)
@@ -47,3 +49,9 @@
 	SYSFASTTRAP(GETLGRP)	/* share fast trap with _lgrp_home_fast() */
 	RET			/* return rval1 */
 	SET_SIZE(getcpuid)
+
+#ifdef __GNUC__
+# undef getcpuid
+
+	ANSI_PRAGMA_WEAK2(getcpuid,_getcpuid,function)
+#endif
--- a/usr/src/lib/libc/common/sys/getdents.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/getdents.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,11 +37,13 @@
 
 #include <sys/asm_linkage.h>
 
-#if !defined(_LARGEFILE_SOURCE)
-	ANSI_PRAGMA_WEAK(getdents,function)
-#else
-	ANSI_PRAGMA_WEAK(getdents64,function)
-#endif	
+#ifndef __GNUC__
+	#if !defined(_LARGEFILE_SOURCE)
+		ANSI_PRAGMA_WEAK(getdents,function)
+	#else
+		ANSI_PRAGMA_WEAK(getdents64,function)
+	#endif	
+#endif
 
 #include "SYS.h"
 
@@ -51,6 +53,12 @@
 	RET
 	SET_SIZE(getdents)
 
+#ifdef __GNUC__
+# undef getdents
+
+	ANSI_PRAGMA_WEAK2(getdents,_getdents,function)
+#endif
+
 #else
 
 /* C library -- getdents64					*/
@@ -60,6 +68,12 @@
 	RET
 	SET_SIZE(getdents64)
 
+#ifdef __GNUC__
+# undef getdents64
+
+	ANSI_PRAGMA_WEAK2(getdents64,_getdents64,function)
+#endif
+
 #endif
 
 
--- a/usr/src/lib/libc/common/sys/getegid.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/getegid.s	Tue Aug 19 11:19:58 2008 -0400
@@ -39,7 +39,9 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(getegid,function)
+#endif
 
 #include "SYS.h"
 
@@ -47,3 +49,8 @@
 	SYSTRAP_RVAL2(getgid)	/*	           rval2 = egid	*/
 	RET2
 	SET_SIZE(getegid)
+
+#ifdef __GNUC__
+#undef getegid
+	ANSI_PRAGMA_WEAK2(getegid,_getegid,function)
+#endif
--- a/usr/src/lib/libc/common/sys/geteuid.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/geteuid.s	Tue Aug 19 11:19:58 2008 -0400
@@ -38,11 +38,23 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(geteuid,function)
+#endif
 
 #include "SYS.h"
 
+#ifndef __GNUC__
+	ANSI_PRAGMA_WEAK2(_private_geteuid,geteuid,function)
+#endif
+
 	ENTRY(geteuid)		/* shared syscall: rval1 = uid	*/
 	SYSTRAP_RVAL2(getuid)	/*	           rval2 = euid	*/
 	RET2
 	SET_SIZE(geteuid)
+
+#ifdef __GNUC__
+# undef geteuid
+	ANSI_PRAGMA_WEAK2(geteuid,_geteuid,function)
+	ANSI_PRAGMA_WEAK2(_private_geteuid,_geteuid,function)
+#endif
--- a/usr/src/lib/libc/common/sys/getgroups.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/getgroups.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(getgroups,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(getgroups)
 	RET
 	SET_SIZE(getgroups)
+
+#ifdef __GNUC__
+# undef getgroups
+
+	ANSI_PRAGMA_WEAK2(getgroups,_getgroups,function)
+#endif
--- a/usr/src/lib/libc/common/sys/getitimer.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/getitimer.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(getitimer,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(getitimer)
 	RETC
 	SET_SIZE(getitimer)
+
+#ifdef __GNUC__
+# undef getitimer
+
+	ANSI_PRAGMA_WEAK2(getitimer,_getitimer,function)
+#endif
--- a/usr/src/lib/libc/common/sys/getppid.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/getppid.s	Tue Aug 19 11:19:58 2008 -0400
@@ -39,7 +39,9 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(getppid,function)
+#endif
 
 #include "SYS.h"
 
@@ -47,3 +49,9 @@
 	SYSTRAP_RVAL2(getpid)	/*	           rval2 = ppid	*/
 	RET2
 	SET_SIZE(getppid)
+
+#ifdef __GNUC__
+# undef getppid
+
+	ANSI_PRAGMA_WEAK2(getppid,_getppid,function)
+#endif
--- a/usr/src/lib/libc/common/sys/install_utrap.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/install_utrap.s	Tue Aug 19 11:19:58 2008 -0400
@@ -30,7 +30,9 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(install_utrap,function)
+#endif
 
 #include "SYS.h"
 
@@ -41,3 +43,9 @@
 	SYSCALL_RVAL1(install_utrap)
 	RET
 	SET_SIZE(install_utrap)
+
+#ifdef __GNUC__
+# undef install_utrap
+
+	ANSI_PRAGMA_WEAK2(install_utrap,_install_utrap,function)
+#endif
--- a/usr/src/lib/libc/common/sys/ioctl.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/ioctl.s	Tue Aug 19 11:19:58 2008 -0400
@@ -36,10 +36,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(ioctl,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RESTART_RVAL1(ioctl)
 	RET
 	SET_SIZE(ioctl)
+
+#ifdef __GNUC__
+# undef ioctl
+
+	ANSI_PRAGMA_WEAK2(ioctl,_ioctl,function)
+#endif
--- a/usr/src/lib/libc/common/sys/kill.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/kill.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,17 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(kill,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(kill)
 	RETC
 	SET_SIZE(kill)
+
+#ifdef __GNUC__
+# undef kill
+	ANSI_PRAGMA_WEAK2(kill,_kill,function)
+#endif
--- a/usr/src/lib/libc/common/sys/lchown.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/lchown.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(lchown,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(lchown)
 	RETC
 	SET_SIZE(lchown)
+
+#ifdef __GNUC__
+# undef lchown
+
+	ANSI_PRAGMA_WEAK2(lchown,_lchown,function)
+#endif
--- a/usr/src/lib/libc/common/sys/llseek.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/llseek.s	Tue Aug 19 11:19:58 2008 -0400
@@ -39,7 +39,9 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(llseek,function)
+#endif
 
 #include "SYS.h"
 
@@ -53,3 +55,9 @@
 #endif
 	RET
 	SET_SIZE(llseek)
+
+#ifdef __GNUC__
+# undef llseek
+
+	ANSI_PRAGMA_WEAK2(llseek,_llseek,function)
+#endif
--- a/usr/src/lib/libc/common/sys/lseek.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/lseek.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,12 @@
 
 #include <sys/asm_linkage.h>
 
-#if !defined(_LARGEFILE_SOURCE)
-	ANSI_PRAGMA_WEAK(lseek,function)
-#else
-	ANSI_PRAGMA_WEAK(lseek64,function)
+#ifndef __GNUC__
+	#if !defined(_LARGEFILE_SOURCE)
+		ANSI_PRAGMA_WEAK(lseek,function)
+	#else
+		ANSI_PRAGMA_WEAK(lseek64,function)
+	#endif
 #endif
 
 #include "SYS.h"
@@ -51,6 +53,12 @@
 	RET
 	SET_SIZE(lseek)
 
+# ifdef __GNUC__
+# undef lseek
+
+	ANSI_PRAGMA_WEAK2(lseek,_lseek,function)
+# endif
+
 #else
 
 /* C library -- lseek64 transitional large file API		*/
@@ -62,4 +70,10 @@
 	RET
 	SET_SIZE(lseek64)
 
+# ifdef __GNUC__
+# undef lseek64
+
+	ANSI_PRAGMA_WEAK2(lseek64,_lseek64,function)
+# endif
+
 #endif
--- a/usr/src/lib/libc/common/sys/lstat.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/lstat.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,12 @@
 
 #include <sys/asm_linkage.h>
 
-#if !defined(_LARGEFILE_SOURCE)
-	ANSI_PRAGMA_WEAK(lstat,function)
-#else
-	ANSI_PRAGMA_WEAK(lstat64,function)
+#ifndef __GNUC__
+	#if !defined(_LARGEFILE_SOURCE)
+		ANSI_PRAGMA_WEAK(lstat,function)
+	#else
+		ANSI_PRAGMA_WEAK(lstat64,function)
+	#endif
 #endif
 
 #include "SYS.h"
@@ -51,6 +53,12 @@
 	RETC
 	SET_SIZE(lstat)
 
+# ifdef __GNUC__
+# undef lstat
+
+	ANSI_PRAGMA_WEAK2(lstat,_lstat,function)
+# endif
+
 #else
 
 /* C library -- lstat64 - transitional large file API		*/
@@ -60,4 +68,10 @@
 	RETC
 	SET_SIZE(lstat64)
 
+# ifdef __GNUC__
+# undef lstat64
+
+	ANSI_PRAGMA_WEAK2(lstat64,_lstat64,function)
+# endif
+
 #endif
--- a/usr/src/lib/libc/common/sys/memcntl.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/memcntl.s	Tue Aug 19 11:19:58 2008 -0400
@@ -38,10 +38,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(memcntl,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(memcntl)
 	RETC
 	SET_SIZE(memcntl)
+
+#ifdef __GNUC__
+# undef memcntl
+
+	ANSI_PRAGMA_WEAK2(memcntl,_memcntl,function)
+#endif
--- a/usr/src/lib/libc/common/sys/mkdir.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/mkdir.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(mkdir,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(mkdir)
 	RET
 	SET_SIZE(mkdir)
+
+#ifdef __GNUC__
+# undef mkdir
+
+	ANSI_PRAGMA_WEAK2(mkdir,_mkdir,function)
+#endif
--- a/usr/src/lib/libc/common/sys/mknod.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/mknod.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(mknod,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(mknod)
 	RETC
 	SET_SIZE(mknod)
+
+#ifdef __GNUC__
+# undef mknod
+
+	ANSI_PRAGMA_WEAK2(mknod,_mknod,function)
+#endif
--- a/usr/src/lib/libc/common/sys/mmap.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/mmap.s	Tue Aug 19 11:19:58 2008 -0400
@@ -33,10 +33,12 @@
 
 #include <sys/asm_linkage.h>
 
-#if !defined(_LARGEFILE_SOURCE)
-	ANSI_PRAGMA_WEAK(mmap,function)
-#else
-	ANSI_PRAGMA_WEAK(mmap64,function)
+#ifndef __GNUC__
+	#if !defined(_LARGEFILE_SOURCE)
+		ANSI_PRAGMA_WEAK(mmap,function)
+	#else
+		ANSI_PRAGMA_WEAK(mmap64,function)
+	#endif
 #endif
 
 #include "SYS.h"
@@ -61,6 +63,12 @@
 	RET
 	SET_SIZE(mmap)
 
+# ifdef __GNUC__
+# undef mmap
+
+	ANSI_PRAGMA_WEAK2(mmap,_mmap,function)
+# endif
+
 #else
 
 /*
@@ -80,4 +88,10 @@
 	RET
 	SET_SIZE(mmap64)
 
+# ifdef __GNUC__
+# undef mmap64
+
+	ANSI_PRAGMA_WEAK2(mmap64,_mmap64,function)
+# endif
+
 #endif
--- a/usr/src/lib/libc/common/sys/mount.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/mount.s	Tue Aug 19 11:19:58 2008 -0400
@@ -38,10 +38,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(mount,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(mount)
 	RETC
 	SET_SIZE(mount)
+
+#ifdef __GNUC__
+# undef mount
+
+	ANSI_PRAGMA_WEAK2(mount,_mount,function)
+#endif
--- a/usr/src/lib/libc/common/sys/nice.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/nice.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(nice,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(nice)
 	RET
 	SET_SIZE(nice)
+
+#ifdef __GNUC__
+# undef nice
+
+	ANSI_PRAGMA_WEAK2(nice,_nice,function)
+#endif
--- a/usr/src/lib/libc/common/sys/ntp_adjtime.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/ntp_adjtime.s	Tue Aug 19 11:19:58 2008 -0400
@@ -33,10 +33,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(ntp_adjtime,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(ntp_adjtime)
 	RET
 	SET_SIZE(ntp_adjtime)
+
+#ifdef __GNUC__
+# undef ntp_adjtime
+
+	ANSI_PRAGMA_WEAK2(ntp_adjtime,_ntp_adjtime,function)
+#endif
--- a/usr/src/lib/libc/common/sys/ntp_gettime.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/ntp_gettime.s	Tue Aug 19 11:19:58 2008 -0400
@@ -33,10 +33,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(ntp_gettime,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(ntp_gettime)
 	RET
 	SET_SIZE(ntp_gettime)
+
+#ifdef __GNUC__
+# undef ntp_gettime
+
+	ANSI_PRAGMA_WEAK2(ntp_gettime,_ntp_gettime,function)
+#endif
--- a/usr/src/lib/libc/common/sys/pathconf.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/pathconf.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(pathconf,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(pathconf)
 	RET
 	SET_SIZE(pathconf)
+
+#ifdef __GNUC__
+# undef pathconf
+
+	ANSI_PRAGMA_WEAK2(pathconf,_pathconf,function)
+#endif
--- a/usr/src/lib/libc/common/sys/pcsample.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/pcsample.s	Tue Aug 19 11:19:58 2008 -0400
@@ -33,10 +33,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(pcsample,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(pcsample)
 	RET
 	SET_SIZE(pcsample)
+
+#ifdef __GNUC__
+# undef pcsample
+
+	ANSI_PRAGMA_WEAK2(pcsample,_pcsample,function)
+#endif
--- a/usr/src/lib/libc/common/sys/readlink.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/readlink.s	Tue Aug 19 11:19:58 2008 -0400
@@ -39,10 +39,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(readlink,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(readlink)
 	RET
 	SET_SIZE(readlink)
+
+#ifdef __GNUC__
+# undef readlink
+
+	ANSI_PRAGMA_WEAK2(readlink,_readlink,function)
+#endif
--- a/usr/src/lib/libc/common/sys/resolvepath.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/resolvepath.s	Tue Aug 19 11:19:58 2008 -0400
@@ -33,10 +33,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(resolvepath,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(resolvepath)
 	RET
 	SET_SIZE(resolvepath)
+
+#ifdef __GNUC__
+# undef resolvepath
+
+	ANSI_PRAGMA_WEAK2(resolvepath,_resolvepath,function)
+#endif
--- a/usr/src/lib/libc/common/sys/rmdir.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/rmdir.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(rmdir,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(rmdir)
 	RET
 	SET_SIZE(rmdir)
+
+#ifdef __GNUC__
+# undef rmdir
+
+	ANSI_PRAGMA_WEAK2(rmdir,_rmdir,function)
+#endif
--- a/usr/src/lib/libc/common/sys/setgroups.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/setgroups.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(setgroups,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(setgroups)
 	RETC
 	SET_SIZE(setgroups)
+
+#ifdef __GNUC__
+# undef setgroups
+
+	ANSI_PRAGMA_WEAK2(setgroups,_setgroups,function)
+#endif
--- a/usr/src/lib/libc/common/sys/setitimer.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/setitimer.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(setitimer,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(setitimer)
 	RETC
 	SET_SIZE(setitimer)
+
+#ifdef __GNUC__
+# undef setitimer
+
+	ANSI_PRAGMA_WEAK2(setitimer,_setitimer,function)
+#endif
--- a/usr/src/lib/libc/common/sys/setreid.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/setreid.s	Tue Aug 19 11:19:58 2008 -0400
@@ -30,8 +30,10 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(setreuid,function)
 	ANSI_PRAGMA_WEAK(setregid,function)
+#endif
 
 #include "SYS.h"
 
@@ -42,3 +44,11 @@
 	SYSCALL_RVAL1(setregid)
 	RETC
 	SET_SIZE(setregid)
+
+#ifdef __GNUC__
+# undef setreuid
+# undef setregid
+
+	ANSI_PRAGMA_WEAK2(setreuid,_setreuid,function)
+	ANSI_PRAGMA_WEAK2(setregid,_setregid,function)
+#endif
--- a/usr/src/lib/libc/common/sys/setrlimit.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/setrlimit.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,12 @@
 
 #include <sys/asm_linkage.h>
 
-#if !defined(_LARGEFILE_SOURCE)
-	ANSI_PRAGMA_WEAK(setrlimit,function)
-#else
-	ANSI_PRAGMA_WEAK(setrlimit64,function)
+#ifndef __GNUC__
+	#if !defined(_LARGEFILE_SOURCE)
+		ANSI_PRAGMA_WEAK(setrlimit,function)
+	#else
+		ANSI_PRAGMA_WEAK(setrlimit64,function)
+	#endif
 #endif
 
 #include "SYS.h"
@@ -51,10 +53,22 @@
 	RETC
 	SET_SIZE(setrlimit)
 
+	# ifdef __GNUC__
+	# undef setrlimit
+
+		ANSI_PRAGMA_WEAK2(setrlimit,_setrlimit,function)
+	# endif
+
 #else
 
 	SYSCALL_RVAL1(setrlimit64)
 	RETC
 	SET_SIZE(setrlimit64)
 
+	# ifdef __GNUC__
+	# undef setrlimit64
+
+		ANSI_PRAGMA_WEAK2(setrlimit64,_setrlimit64,function)
+	# endif
+
 #endif
--- a/usr/src/lib/libc/common/sys/sigaltstk.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/sigaltstk.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,17 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(sigaltstack,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(sigaltstack)
 	RETC
 	SET_SIZE(sigaltstack)
+
+#ifdef __GNUC__
+# undef sigaltstack
+	ANSI_PRAGMA_WEAK2(sigaltstack,_sigaltstack,function)
+#endif
--- a/usr/src/lib/libc/common/sys/sigsendset.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/sigsendset.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(sigsendset,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL2_RVAL1(sigsendset,sigsendsys)
 	RETC
 	SET_SIZE(sigsendset)
+
+#ifdef __GNUC__
+# undef sigsendset
+
+	ANSI_PRAGMA_WEAK2(sigsendset,_sigsendset,function)
+#endif
--- a/usr/src/lib/libc/common/sys/stat.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/stat.s	Tue Aug 19 11:19:58 2008 -0400
@@ -36,10 +36,12 @@
 
 #include <sys/asm_linkage.h>
 
-#if !defined(_LARGEFILE_SOURCE)
+#ifndef __GNUC__
+# if !defined(_LARGEFILE_SOURCE)
 	ANSI_PRAGMA_WEAK(stat,function)
-#else
+# else
 	ANSI_PRAGMA_WEAK(stat64,function)
+# endif
 #endif
 	
 #include "SYS.h"
@@ -50,6 +52,12 @@
 	RETC
 	SET_SIZE(stat)
 
+	# ifdef __GNUC__
+	# undef stat
+
+		ANSI_PRAGMA_WEAK2(stat,_stat,function)
+	# endif
+
 #else
 
 /* C library -- stat64 - transitional API			*/
@@ -59,4 +67,10 @@
 	RETC
 	SET_SIZE(stat64)
 
+	# ifdef __GNUC__
+	# undef stat64
+
+		ANSI_PRAGMA_WEAK2(stat64,_stat64,function)
+	# endif
+
 #endif
--- a/usr/src/lib/libc/common/sys/statvfs.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/statvfs.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,12 @@
 
 #include <sys/asm_linkage.h>
 
-#if !defined(_LARGEFILE_SOURCE)
+#ifndef __GNUC__
+# if !defined(_LARGEFILE_SOURCE)
 	ANSI_PRAGMA_WEAK(statvfs,function)
-#else
+# else
 	ANSI_PRAGMA_WEAK(statvfs64,function)
+# endif
 #endif
 
 #include "SYS.h"
@@ -51,6 +53,12 @@
 	RETC
 	SET_SIZE(statvfs)
 
+# ifdef __GNUC__
+#  undef statvfs
+
+	ANSI_PRAGMA_WEAK2(statvfs,_statvfs,function)
+# endif
+
 #else
 
 /* C library -- statvfs64					*/
@@ -59,5 +67,11 @@
 	SYSCALL_RVAL1(statvfs64)
 	RETC
 	SET_SIZE(statvfs64)
+
+# ifdef __GNUC__
+#  undef statvfs64
+
+	ANSI_PRAGMA_WEAK2(statvfs64,_statvfs64,function)
+# endif
 	
 #endif
--- a/usr/src/lib/libc/common/sys/symlink.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/symlink.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(symlink,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(symlink)
 	RETC
 	SET_SIZE(symlink)
+
+#ifdef __GNUC__
+# undef symlink
+
+	ANSI_PRAGMA_WEAK2(symlink,_symlink,function)
+#endif
--- a/usr/src/lib/libc/common/sys/sync.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/sync.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(sync,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_NOERROR_RVAL1(sync)
 	RETC
 	SET_SIZE(sync)
+
+#ifdef __GNUC__
+# undef sync
+
+	ANSI_PRAGMA_WEAK2(sync,_sync,function)
+#endif
--- a/usr/src/lib/libc/common/sys/sysfs.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/sysfs.s	Tue Aug 19 11:19:58 2008 -0400
@@ -39,10 +39,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(sysfs,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(sysfs)
 	RET
 	SET_SIZE(sysfs)
+
+#ifdef __GNUC__
+# undef sysfs
+
+	ANSI_PRAGMA_WEAK2(sysfs,_sysfs,function)
+#endif
--- a/usr/src/lib/libc/common/sys/sysinfo.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/sysinfo.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(sysinfo,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL2_RVAL1(sysinfo,systeminfo)
 	RET
 	SET_SIZE(sysinfo)
+
+#ifdef __GNUC__
+# undef sysinfo
+
+	ANSI_PRAGMA_WEAK2(sysinfo,_sysinfo,function)
+#endif
--- a/usr/src/lib/libc/common/sys/times.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/times.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(times,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(times)
 	RET
 	SET_SIZE(times)
+
+#ifdef __GNUC__
+# undef times
+	
+	ANSI_PRAGMA_WEAK2(times,_times,function)
+#endif
--- a/usr/src/lib/libc/common/sys/ulimit.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/ulimit.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(ulimit,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(ulimit)
 	RET
 	SET_SIZE(ulimit)
+
+#ifdef __GNUC__
+# undef ulimit
+
+	ANSI_PRAGMA_WEAK2(ulimit,_ulimit,function)
+#endif
--- a/usr/src/lib/libc/common/sys/umask.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/umask.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(umask,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(umask)
 	RET
 	SET_SIZE(umask)
+
+#ifdef __GNUC__
+# undef umask
+
+	ANSI_PRAGMA_WEAK2(umask,_umask,function)
+#endif
--- a/usr/src/lib/libc/common/sys/umount2.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/umount2.s	Tue Aug 19 11:19:58 2008 -0400
@@ -33,10 +33,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(umount2,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(umount2)
 	RETC
 	SET_SIZE(umount2)
+
+#ifdef __GNUC__
+# undef umount2
+
+	ANSI_PRAGMA_WEAK2(umount2,_umount2,function)
+#endif
--- a/usr/src/lib/libc/common/sys/unlink.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/unlink.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
 
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC_
 	ANSI_PRAGMA_WEAK(unlink,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(unlink)
 	RETC
 	SET_SIZE(unlink)
+
+#ifdef __GNUC__
+# undef unlink
+
+	ANSI_PRAGMA_WEAK2(unlink,_unlink,function)
+#endif
--- a/usr/src/lib/libc/common/sys/utime.s	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libc/common/sys/utime.s	Tue Aug 19 11:19:58 2008 -0400
@@ -37,10 +37,18 @@
  
 #include <sys/asm_linkage.h>
 
+#ifndef __GNUC__
 	ANSI_PRAGMA_WEAK(utime,function)
+#endif
 
 #include "SYS.h"
 
 	SYSCALL_RVAL1(utime)
 	RETC
 	SET_SIZE(utime)
+
+#ifdef __GNUC__
+# undef utime
+
+	ANSI_PRAGMA_WEAK2(utime,_utime,function)
+#endif
--- a/usr/src/lib/libkmf/libkmf/common/generalop.c	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/lib/libkmf/libkmf/common/generalop.c	Tue Aug 19 11:19:58 2008 -0400
@@ -169,6 +169,10 @@
 #define	ISA_PATH	"/"
 #elif defined(__amd64)
 #define	ISA_PATH	"/amd64"
+#elif defined(__s390x)
+#define	ISA_PATH	"/s390x"
+#elif defined(__s390)
+#define	ISA_PATH	"/"
 #endif
 
 #define	DEFAULT_KEYSTORE_NUM	3
--- a/usr/src/tools/cw/cw.c	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/tools/cw/cw.c	Tue Aug 19 11:19:58 2008 -0400
@@ -402,11 +402,11 @@
 	{ "v9b",	(SS11|M64), { "-m64", "-mcpu=ultrasparc3", "-mvis" } },
 	{ "sparc",	SS12, { "-mcpu=v9", "-mv8plus" } },
 	{ "sparcvis",	SS12, { "-mcpu=ultrasparc", "-mvis" } },
-	{ "sparcvis2",	SS12, { "-mcpu=ultrasparc3", "-mvis" } }
+	{ "sparcvis2",	SS12, { "-mcpu=ultrasparc3", "-mvis" } },
 #endif
 #if defined(__s390)
-	"z990",		"-march=z990", NULL,
-	"z9",		"-march=z9-109", NULL,
+	{ "z990",	0,    { "-march=z990" } },
+	{ "z9",		0,    { "-march=z9-109" } }
 #endif
 };
 
--- a/usr/src/uts/s390x/Makefile	Wed Aug 06 14:45:37 2008 -0400
+++ b/usr/src/uts/s390x/Makefile	Tue Aug 19 11:19:58 2008 -0400
@@ -51,11 +51,17 @@
 #
 #
 def		:=	TARGET= def
+def.prereq	:=	TARGET= def
 all		:=	TARGET= all
+all.prereq	:=	TARGET= all
 install		:=	TARGET= install
+install.prereq	:=	TARGET= all
+install_h	:=	TARGET= install_h
+install_h.prere	:=	TARGET= install_h
 clean		:=	TARGET= clean
 clobber		:=	TARGET= clobber
 lint		:=	TARGET= lint
+lint.prereq	:=	TARGET= lint
 lintlib		:=	TARGET= lintlib
 machmodlintlib	:=	TARGET= modlintlib
 modlist		:=	TARGET= modlist
@@ -94,6 +100,96 @@
 genassym unix $(KMODS):	FRC
 	@cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
 
+#
+# Privilege constants
+#
+# NOTE: The rules for generating priv_const.c file are shared between all
+# processor architectures and should be kept in sync. If they are changed in
+# this file make sure that x86 rules are updated as well.
+#
+PRIVS_C = $(UTSBASE)/common/os/priv_const.c
+
+$(PRIVS_C): $(PRIVS_AWK) $(PRIVS_DEF)
+	$(NAWK) -f $(PRIVS_AWK) < $(PRIVS_DEF) cfile=$@
+
+#
+# Prerequisites
+#
+# The uts/Makefile defines build parallelism for sun4 platforms such that s390x
+# and zSeries are all built in parallel. Also this Makefile specifies that
+# all IMPLEMENTATIONS s390x sub-platforms are built in parallel. This requires
+# building certain parts before the parallel build can start. The uts/Makefile
+# appends the '.prereq' string to the original target and executes this Makefile
+# to build any prerequisites needed before the full parallel build can start.
+# After that make continues with normal targets.
+#
+# Any build prerequisites for s390x and IMPLEMENTATIONS builds should be
+# described here.
+#
+# genassym is used to build dtrace and genunix, so it should be built first.
+#
+# priv_const.c is required to build genunix.
+#
+# genunix is used by everyone to ctfmerge with. Genunix is merged with zSeries/ip
+#   so as a side effect this dependency builds zSeries/ip as part of the
+#   prerequisites.
+#
+# unix is not required by itself but several s390x platforms require
+#   s390x/platmod to be present. The easiest way to achieve this is to build
+#   s390x/unix first since s390x/unix Makefile builds s390x/platform correctly.
+#   This causes full s390x/unix to be built before all s390x platforms and
+#   before uts/zSeries, but it acceptable since it is not spending
+#   too much time building s390x/unix.
+#
+all.prereq def.prereq install.prereq: genassym genunix unix
+
+#
+# Various s390x platforms expect proto/root_s390/platform/s390x/include to be
+# present. This is handled by running make install_h in s390x/unix directory
+# first.
+#
+install_h.prereq: FRC
+	@cd sys; pwd; $(MAKE) $(TARGET)
+
+#
+# s390x/unix and s390x/genunix should be linted first since sparc does global
+# cross-check with these lint libraries. The s390x/unix and s390x/genunix can be
+# linted in parallel.
+#
+LINT_PREREQ = unix.lint genunix.lint
+lint.prereq: $(LINT_PREREQ)
+
+.PARALLEL:  $(LINT_PREREQ)
+
+$(LINT_PREREQ):
+	@cd $(@:%.lint=%); pwd; $(MAKE) $(TARGET)
+
+#
+# Nothing to do with any other prerequisites
+#
+%.prereq:
+
+#
+# Platform inter-dependencies
+#
+
+
+#
+# The genunix requires priv_const.c file to be generated first.
+#
+genunix: $(PRIVS_C)
+
+#
+# Rules
+#
+
+$(IMPLEMENTATIONS):	FRC
+	@cd $@; pwd; THISIMPL=$@ $(MAKE) $(NO_STATE) $(TARGET)
+
+$(CLOSED_IMPLEMENTATIONS):	FRC
+	cd $(CLOSED)/uts/sun4u/$@; pwd; \
+	    THISIMPL=$@ $(MAKE) $(NO_STATE) $(TARGET); \
+
 $(XMODS):	FRC
 	@if [ -f $@/Makefile  ]; then \
 		cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET); \
@@ -112,8 +208,10 @@
 		true; \
 	fi
 
-install_h check:	FRC
+install_h check: install_platforms $(IMPLEMENTATIONS) \
+	$(CLOSED_IMPLEMENTATIONS) FRC
 	@cd sys; pwd; $(MAKE) $(TARGET)
+	@cd vm; pwd; $(MAKE) $(TARGET)
 
 #
 # For some s390x OEMs that deliver their own platform kernel modules but
@@ -176,7 +274,7 @@
 SHARED_XRDIRS	= ../zSeries ../s390x ../common
 XRDIRS		= $(SHARED_XRDIRS)
 $(CLOSED_BUILD)XRDIRS	= $(SHARED_XRDIRS:../%=../% ../../../closed/uts/%)
-XRPRUNE	= sun4u sun4
+XRPRUNE	= sun4u sun4 i86pc
 
 cscope.out tags: FRC
 	$(XREF) -x $@
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/s390x/vm/Makefile	Tue Aug 19 11:19:58 2008 -0400
@@ -0,0 +1,81 @@
+#
+# 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.
+#
+#pragma ident	"%Z%%M%	%I%	%E% NAF"
+#
+# uts/s390x/vm/Makefile
+#
+UTSBASE = ../..
+
+#
+# include global definitions
+#
+include ../Makefile.s390x
+
+#
+# Override defaults.
+#
+FILEMODE = 644
+GROUP = bin
+
+HDRS=		hat_s390x.h hat_pte.h hment.h htable.h mm_s390x.h xhat_s390x.h vm_dep.h
+
+ROOTHDRS=	$(HDRS:%=$(USR_PSM_IVM_DIR)/%)
+
+ROOTDIR=	$(ROOT)/usr/share/src
+ROOTDIRS=	$(ROOTDIR)/uts $(ROOTDIR)/uts/$(PLATFORM)
+
+ROOTLINK=	$(ROOTDIR)/uts/$(PLATFORM)/vm
+LINKDEST=	../../../../platform/$(PLATFORM)/include/vm
+
+CHECKHDRS=	$(HDRS:%.h=%.check)
+
+.KEEP_STATE:
+
+.PARALLEL: $(CHECKHDRS) $(ROOTHDRS)
+
+install_h: $(ROOTDIRS) .WAIT $(ROOTHDRS) $(ROOTLINK)
+
+check:	$(CHECKHDRS)
+
+#
+# install rules
+#
+$(USR_PSM_IVM_DIR)/%: ../vm/% $(USR_PSM_IVM_DIR)
+	$(INS.file)
+
+$(ROOTDIRS):
+	$(INS.dir.root.bin)
+
+# -r because this used to be a directory and is now a link.
+$(ROOTLINK):    $(ROOTDIRS)
+	-$(RM) -r $@; $(SYMLINK) $(LINKDEST) $@ $(CHOWNLINK) $(CHGRPLINK)
+
+CLEANFILES=
+
+CLOBBERFILES=
+
+CLEANLINTFILES=
+
+include ../../Makefile.targ