2N/A#
2N/A# CDDL HEADER START
2N/A#
2N/A# The contents of this file are subject to the terms of the
2N/A# Common Development and Distribution License (the "License").
2N/A# You may not use this file except in compliance with the License.
2N/A#
2N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A# or http://www.opensolaris.org/os/licensing.
2N/A# See the License for the specific language governing permissions
2N/A# and limitations under the License.
2N/A#
2N/A# When distributing Covered Code, include this CDDL HEADER in each
2N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A# If applicable, add the following below this CDDL HEADER, with the
2N/A# fields enclosed by brackets "[]" replaced with your own identifying
2N/A# information: Portions Copyright [yyyy] [name of copyright owner]
2N/A#
2N/A# CDDL HEADER END
2N/A#
2N/A#
2N/A# Copyright (c) 1989, 2012, Oracle and/or its affiliates. All rights reserved.
2N/A#
2N/A
2N/ALIBCDIR= $(SRC)/lib/libc
2N/ALIB_PIC= libc_pic.a
2N/AVERS= .1
2N/ACPP= /usr/lib/cpp
2N/ATARGET_ARCH= sparc
2N/A
2N/A# objects are grouped by source directory
2N/A
2N/A# Symbol capabilities objects.
2N/AEXTPICS= \
2N/A $(LIBCDIR)/capabilities/sun4u/sparc/pics/symcap.o \
2N/A $(LIBCDIR)/capabilities/sun4u-opl/sparc/pics/symcap.o \
2N/A $(LIBCDIR)/capabilities/sun4v-hwcap1/sparc/pics/symcap.o \
2N/A $(LIBCDIR)/capabilities/sun4v-hwcap2/sparc/pics/symcap.o \
2N/A $(LIBCDIR)/capabilities/sun4v-hwcap3/sparc/pics/symcap.o \
2N/A $(LIBCDIR)/capabilities/sun4v-fjathena/sparc/pics/symcap.o \
2N/A $(LIBCDIR)/capabilities/sparc-pause/sparc/pics/symcap.o
2N/A
2N/A# local objects
2N/ASTRETS= \
2N/A stret1.o \
2N/A stret2.o \
2N/A stret4.o
2N/A
2N/ACRTOBJS= \
2N/A _ftou.o \
2N/A cerror.o \
2N/A cerror64.o \
2N/A hwmuldiv.o
2N/A
2N/ADYNOBJS= \
2N/A _rtbootld.o
2N/A
2N/AFPOBJS= \
2N/A _D_cplx_div.o \
2N/A _D_cplx_div_ix.o \
2N/A _D_cplx_div_rx.o \
2N/A _D_cplx_mul.o \
2N/A _F_cplx_div.o \
2N/A _F_cplx_div_ix.o \
2N/A _F_cplx_div_rx.o \
2N/A _F_cplx_mul.o \
2N/A _Q_add.o \
2N/A _Q_cmp.o \
2N/A _Q_cmpe.o \
2N/A _Q_cplx_div.o \
2N/A _Q_cplx_div_ix.o \
2N/A _Q_cplx_div_rx.o \
2N/A _Q_cplx_lr_div.o \
2N/A _Q_cplx_lr_div_ix.o \
2N/A _Q_cplx_lr_div_rx.o \
2N/A _Q_cplx_lr_mul.o \
2N/A _Q_cplx_mul.o \
2N/A _Q_div.o \
2N/A _Q_dtoq.o \
2N/A _Q_fcc.o \
2N/A _Q_itoq.o \
2N/A _Q_lltoq.o \
2N/A _Q_mul.o \
2N/A _Q_neg.o \
2N/A _Q_qtod.o \
2N/A _Q_qtoi.o \
2N/A _Q_qtos.o \
2N/A _Q_qtou.o \
2N/A _Q_scl.o \
2N/A _Q_set_except.o \
2N/A _Q_sqrt.o \
2N/A _Q_stoq.o \
2N/A _Q_sub.o \
2N/A _Q_ulltoq.o \
2N/A _Q_utoq.o \
2N/A __quad_mag.o
2N/A
2N/AFPASMOBJS= \
2N/A _Q_get_rp_rd.o \
2N/A fpgetmask.o \
2N/A fpgetrnd.o \
2N/A fpgetsticky.o \
2N/A fpsetmask.o \
2N/A fpsetrnd.o \
2N/A fpsetsticky.o
2N/A
2N/AATOMICOBJS= \
2N/A atomic.o
2N/A
2N/AXATTROBJS= \
2N/A xattr_common.o
2N/A
2N/ACOMOBJS= \
2N/A bcmp.o \
2N/A bcopy.o \
2N/A bzero.o \
2N/A bsearch.o \
2N/A memccpy.o \
2N/A qsort.o \
2N/A strtol.o \
2N/A strtoul.o \
2N/A strtoll.o \
2N/A strtoull.o
2N/A
2N/ADTRACEOBJS= \
2N/A dtrace_data.o
2N/A
2N/AGENOBJS= \
2N/A _getsp.o \
2N/A _xregs_clrptr.o \
2N/A abs.o \
2N/A alloca.o \
2N/A ascii_strcasecmp.o \
2N/A byteorder.o \
2N/A cuexit.o \
2N/A ecvt.o \
2N/A errlst.o \
2N/A getctxt.o \
2N/A ladd.o \
2N/A lmul.o \
2N/A lock.o \
2N/A lshiftl.o \
2N/A lsign.o \
2N/A lsub.o \
2N/A makectxt.o \
2N/A memchr.o \
2N/A memcmp.o \
2N/A new_list.o \
2N/A setjmp.o \
2N/A siginfolst.o \
2N/A siglongjmp.o \
2N/A smt_pause.o \
2N/A sparc_data.o \
2N/A strchr.o \
2N/A strcmp.o \
2N/A strlcpy.o \
2N/A strncmp.o \
2N/A strncpy.o \
2N/A strnlen.o \
2N/A swapctxt.o \
2N/A sync_instruction_memory.o
2N/A
2N/A# sysobjs that contain large-file interfaces
2N/ACOMSYSOBJS64= \
2N/A fstatvfs64.o \
2N/A getdents64.o \
2N/A getrlimit64.o \
2N/A lseek64.o \
2N/A mmap64.o \
2N/A pread64.o \
2N/A pwrite64.o \
2N/A setrlimit64.o \
2N/A statvfs64.o
2N/A
2N/ASYSOBJS64=
2N/A
2N/ACOMSYSOBJS= \
2N/A __clock_timer.o \
2N/A __getloadavg.o \
2N/A __rusagesys.o \
2N/A __signotify.o \
2N/A __sigrt.o \
2N/A __time.o \
2N/A _lgrp_home_fast.o \
2N/A _lgrpsys.o \
2N/A _nfssys.o \
2N/A _portfs.o \
2N/A _pset.o \
2N/A _rpcsys.o \
2N/A _sigaction.o \
2N/A _so_accept.o \
2N/A _so_bind.o \
2N/A _so_connect.o \
2N/A _so_getpeername.o \
2N/A _so_getsockname.o \
2N/A _so_getsockopt.o \
2N/A _so_listen.o \
2N/A _so_recv.o \
2N/A _so_recvfrom.o \
2N/A _so_recvmsg.o \
2N/A _so_send.o \
2N/A _so_sendmsg.o \
2N/A _so_sendto.o \
2N/A _so_setsockopt.o \
2N/A _so_shutdown.o \
2N/A _so_socket.o \
2N/A _so_socketpair.o \
2N/A _sockconfig.o \
2N/A acct.o \
2N/A acl.o \
2N/A adjtime.o \
2N/A alarm.o \
2N/A brk.o \
2N/A chdir.o \
2N/A chroot.o \
2N/A cladm.o \
2N/A close.o \
2N/A exit.o \
2N/A facl.o \
2N/A fchdir.o \
2N/A fchroot.o \
2N/A fdsync.o \
2N/A fpathconf.o \
2N/A fstatfs.o \
2N/A fstatvfs.o \
2N/A getcpuid.o \
2N/A getdents.o \
2N/A getegid.o \
2N/A geteuid.o \
2N/A getgid.o \
2N/A getgroups.o \
2N/A gethrtime.o \
2N/A getitimer.o \
2N/A getmsg.o \
2N/A getpid.o \
2N/A getpmsg.o \
2N/A getppid.o \
2N/A getrlimit.o \
2N/A getuid.o \
2N/A gtty.o \
2N/A install_utrap.o \
2N/A ioctl.o \
2N/A kaio.o \
2N/A kill.o \
2N/A llseek.o \
2N/A lseek.o \
2N/A memcntl.o \
2N/A mincore.o \
2N/A mmap.o \
2N/A mmapobjsys.o \
2N/A modctl.o \
2N/A mount.o \
2N/A mprotect.o \
2N/A munmap.o \
2N/A nice.o \
2N/A ntp_adjtime.o \
2N/A ntp_gettime.o \
2N/A p_online.o \
2N/A pathconf.o \
2N/A pause.o \
2N/A pcsample.o \
2N/A pollsys.o \
2N/A pread.o \
2N/A priocntlset.o \
2N/A processor_bind.o \
2N/A processor_info.o \
2N/A profil.o \
2N/A putmsg.o \
2N/A putpmsg.o \
2N/A pwrite.o \
2N/A read.o \
2N/A readv.o \
2N/A resolvepath.o \
2N/A seteguid.o \
2N/A setgid.o \
2N/A setgroups.o \
2N/A setitimer.o \
2N/A setreid.o \
2N/A setrlimit.o \
2N/A setuid.o \
2N/A sigaltstk.o \
2N/A sigprocmsk.o \
2N/A sigsendset.o \
2N/A sigsuspend.o \
2N/A statfs.o \
2N/A statvfs.o \
2N/A stty.o \
2N/A sync.o \
2N/A sysconfig.o \
2N/A sysfs.o \
2N/A sysinfo.o \
2N/A syslwp.o \
2N/A times.o \
2N/A ulimit.o \
2N/A umask.o \
2N/A umount2.o \
2N/A utssys.o \
2N/A uucopy.o \
2N/A vhangup.o \
2N/A waitid.o \
2N/A write.o \
2N/A writev.o \
2N/A yield.o
2N/A
2N/ASYSOBJS= \
2N/A __clock_gettime.o \
2N/A __getcontext.o \
2N/A _lwp_mutex_unlock.o \
2N/A _stack_grow.o \
2N/A __uadmin.o \
2N/A door.o \
2N/A forkx.o \
2N/A forkallx.o \
2N/A gettimeofday.o \
2N/A pipe.o \
2N/A ptrace.o \
2N/A syscall.o \
2N/A tls_get_addr.o \
2N/A uadmin.o \
2N/A umount.o \
2N/A uname.o \
2N/A vforkx.o
2N/A
2N/A# objects under $(LIBCDIR)/port which contain transitional large file interfaces
2N/APORTGEN64= \
2N/A _xftw64.o \
2N/A attropen64.o \
2N/A ftw64.o \
2N/A mkstemp64.o \
2N/A nftw64.o \
2N/A tell64.o \
2N/A truncate64.o
2N/A
2N/A# objects from source under $(LIBCDIR)/port
2N/APORTFP= \
2N/A __flt_decim.o \
2N/A __flt_rounds.o \
2N/A __tbl_10_b.o \
2N/A __tbl_10_h.o \
2N/A __tbl_10_s.o \
2N/A __tbl_2_b.o \
2N/A __tbl_2_h.o \
2N/A __tbl_2_s.o \
2N/A __tbl_fdq.o \
2N/A __tbl_tens.o \
2N/A __x_power.o \
2N/A _base_sup.o \
2N/A aconvert.o \
2N/A decimal_bin.o \
2N/A double_decim.o \
2N/A econvert.o \
2N/A fconvert.o \
2N/A file_decim.o \
2N/A finite.o \
2N/A fp_data.o \
2N/A func_decim.o \
2N/A gconvert.o \
2N/A hex_bin.o \
2N/A ieee_globals.o \
2N/A pack_float.o \
2N/A sigfpe.o \
2N/A string_decim.o \
2N/A ashldi3.o \
2N/A ashrdi3.o \
2N/A cmpdi2.o \
2N/A divdi3.o \
2N/A floatdidf.o \
2N/A floatdisf.o \
2N/A lshrdi3.o \
2N/A moddi3.o \
2N/A muldi3.o \
2N/A qdivrem.o \
2N/A ucmpdi2.o \
2N/A udivdi3.o \
2N/A umoddi3.o
2N/A
2N/APORTGEN= \
2N/A _env_data.o \
2N/A _ftoll.o \
2N/A _ftoull.o \
2N/A _xftw.o \
2N/A a64l.o \
2N/A abort.o \
2N/A addsev.o \
2N/A ascii_strncasecmp.o \
2N/A assert.o \
2N/A atof.o \
2N/A atoi.o \
2N/A atol.o \
2N/A atoll.o \
2N/A attrat.o \
2N/A attropen.o \
2N/A atexit.o \
2N/A atfork.o \
2N/A basename.o \
2N/A calloc.o \
2N/A catgets.o \
2N/A catopen.o \
2N/A cfgetispeed.o \
2N/A cfgetospeed.o \
2N/A cfree.o \
2N/A cfsetispeed.o \
2N/A cfsetospeed.o \
2N/A cftime.o \
2N/A clock.o \
2N/A closedir.o \
2N/A closefrom.o \
2N/A confstr.o \
2N/A crypt.o \
2N/A csetlen.o \
2N/A ctime.o \
2N/A ctime_r.o \
2N/A daemon.o \
2N/A deflt.o \
2N/A directio.o \
2N/A dirname.o \
2N/A div.o \
2N/A drand48.o \
2N/A dup.o \
2N/A env_data.o \
2N/A err.o \
2N/A errno.o \
2N/A euclen.o \
2N/A event_port.o \
2N/A execvp.o \
2N/A fattach.o \
2N/A fdetach.o \
2N/A fdopendir.o \
2N/A ffs.o \
2N/A fls.o \
2N/A fmtmsg.o \
2N/A ftime.o \
2N/A ftok.o \
2N/A ftw.o \
2N/A gcvt.o \
2N/A getauxv.o \
2N/A getcwd.o \
2N/A getdate_err.o \
2N/A getdtblsize.o \
2N/A getenv.o \
2N/A getexecname.o \
2N/A getgrnam.o \
2N/A getgrnam_r.o \
2N/A gethostid.o \
2N/A gethostname.o \
2N/A gethz.o \
2N/A getisax.o \
2N/A getloadavg.o \
2N/A getlogin.o \
2N/A getmntent.o \
2N/A getnetgrent.o \
2N/A get_nprocs.o \
2N/A getopt.o \
2N/A getopt_long.o \
2N/A getpagesize.o \
2N/A getpw.o \
2N/A getpwnam.o \
2N/A getpwnam_r.o \
2N/A getrusage.o \
2N/A getspent.o \
2N/A getspent_r.o \
2N/A getsubopt.o \
2N/A gettxt.o \
2N/A getuserattrnam.o \
2N/A getusershell.o \
2N/A getut.o \
2N/A getutx.o \
2N/A getvfsent.o \
2N/A getwd.o \
2N/A getwidth.o \
2N/A getxby_door.o \
2N/A gtxt.o \
2N/A hsearch.o \
2N/A iconv.o \
2N/A imaxabs.o \
2N/A imaxdiv.o \
2N/A index.o \
2N/A initgroups.o \
2N/A insque.o \
2N/A isaexec.o \
2N/A isastream.o \
2N/A isatty.o \
2N/A killpg.o \
2N/A l64a.o \
2N/A lckpwdf.o \
2N/A lconstants.o \
2N/A ldivide.o \
2N/A lexp10.o \
2N/A lfind.o \
2N/A lfmt.o \
2N/A lfmt_log.o \
2N/A llabs.o \
2N/A lldiv.o \
2N/A llog10.o \
2N/A lltostr.o \
2N/A localtime.o \
2N/A lsearch.o \
2N/A madvise.o \
2N/A malloc.o \
2N/A memalign.o \
2N/A memmem.o \
2N/A mkdev.o \
2N/A mkdtemp.o \
2N/A mkfifo.o \
2N/A mkstemp.o \
2N/A mktemp.o \
2N/A mlock.o \
2N/A mlockall.o \
2N/A mon.o \
2N/A msync.o \
2N/A munlock.o \
2N/A munlockall.o \
2N/A ndbm.o \
2N/A nftw.o \
2N/A nlspath_checks.o \
2N/A nsparse.o \
2N/A nss_common.o \
2N/A nss_dbdefs.o \
2N/A nss_deffinder.o \
2N/A opendir.o \
2N/A opt_data.o \
2N/A perror.o \
2N/A pfmt.o \
2N/A pfmt_data.o \
2N/A pfmt_print.o \
2N/A plock.o \
2N/A poll.o \
2N/A posix_fadvise.o \
2N/A posix_fallocate.o \
2N/A posix_madvise.o \
2N/A posix_memalign.o \
2N/A priocntl.o \
2N/A privlib.o \
2N/A priv_str_xlate.o \
2N/A psiginfo.o \
2N/A psignal.o \
2N/A pt.o \
2N/A putpwent.o \
2N/A putspent.o \
2N/A raise.o \
2N/A rand.o \
2N/A random.o \
2N/A rctlops.o \
2N/A readdir.o \
2N/A readdir_r.o \
2N/A realpath.o \
2N/A reboot.o \
2N/A regexpr.o \
2N/A remove.o \
2N/A rewinddir.o \
2N/A rindex.o \
2N/A scandir.o \
2N/A seekdir.o \
2N/A select.o \
2N/A select_large_fdset.o \
2N/A setlabel.o \
2N/A setpriority.o \
2N/A settimeofday.o \
2N/A sh_locks.o \
2N/A sigflag.o \
2N/A siglist.o \
2N/A sigsend.o \
2N/A sigsetops.o \
2N/A ssignal.o \
2N/A stack.o \
2N/A stpcpy.o \
2N/A stpncpy.o \
2N/A str2sig.o \
2N/A strcase_charmap.o \
2N/A strcat.o \
2N/A strchrnul.o \
2N/A strcspn.o \
2N/A strdup.o \
2N/A strerror.o \
2N/A strlcat.o \
2N/A strncat.o \
2N/A strndup.o \
2N/A strpbrk.o \
2N/A strrchr.o \
2N/A strsep.o \
2N/A strsignal.o \
2N/A strspn.o \
2N/A strstr.o \
2N/A strtod.o \
2N/A strtoimax.o \
2N/A strtok.o \
2N/A strtok_r.o \
2N/A strtoumax.o \
2N/A swab.o \
2N/A swapctl.o \
2N/A sysconf.o \
2N/A syslog.o \
2N/A tcdrain.o \
2N/A tcflow.o \
2N/A tcflush.o \
2N/A tcgetattr.o \
2N/A tcgetpgrp.o \
2N/A tcgetsid.o \
2N/A tcsendbreak.o \
2N/A tcsetattr.o \
2N/A tcsetpgrp.o \
2N/A tell.o \
2N/A telldir.o \
2N/A tfind.o \
2N/A time_data.o \
2N/A time_gdata.o \
2N/A tls_data.o \
2N/A truncate.o \
2N/A tsdalloc.o \
2N/A tsearch.o \
2N/A ttyname.o \
2N/A ttyslot.o \
2N/A ualarm.o \
2N/A ucred.o \
2N/A valloc.o \
2N/A vlfmt.o \
2N/A vpfmt.o \
2N/A waitpid.o \
2N/A walkstack.o \
2N/A wdata.o \
2N/A xgetwidth.o \
2N/A xpg4.o \
2N/A xpg6.o
2N/A
2N/APORTPRINT_W= \
2N/A doprnt_w.o
2N/A
2N/APORTPRINT= \
2N/A asprintf.o \
2N/A doprnt.o \
2N/A fprintf.o \
2N/A printf.o \
2N/A snprintf.o \
2N/A sprintf.o \
2N/A vfprintf.o \
2N/A vprintf.o \
2N/A vsnprintf.o \
2N/A vsprintf.o \
2N/A vwprintf.o \
2N/A wprintf.o
2N/A
2N/A# c89 variants to support 32-bit size of c89 u/intmax_t (32-bit libc only)
2N/APORTPRINT_C89= \
2N/A vfprintf_c89.o \
2N/A vprintf_c89.o \
2N/A vsnprintf_c89.o \
2N/A vsprintf_c89.o \
2N/A vwprintf_c89.o
2N/A
2N/APORTSTDIO_C89= \
2N/A vscanf_c89.o \
2N/A vwscanf_c89.o
2N/A
2N/A# portable stdio objects that contain large file interfaces.
2N/A# Note: fopen64 is a special case, as we build it small.
2N/APORTSTDIO64= \
2N/A fopen64.o \
2N/A fpos64.o
2N/A
2N/APORTSTDIO_W= \
2N/A doscan_w.o
2N/A
2N/APORTSTDIO= \
2N/A __extensions.o \
2N/A _endopen.o \
2N/A _filbuf.o \
2N/A _findbuf.o \
2N/A _flsbuf.o \
2N/A _wrtchk.o \
2N/A clearerr.o \
2N/A ctermid.o \
2N/A ctermid_r.o \
2N/A cuserid.o \
2N/A data.o \
2N/A doscan.o \
2N/A fdopen.o \
2N/A feof.o \
2N/A ferror.o \
2N/A fgetc.o \
2N/A fgets.o \
2N/A fileno.o \
2N/A flockf.o \
2N/A flush.o \
2N/A fopen.o \
2N/A fpos.o \
2N/A fputc.o \
2N/A fputs.o \
2N/A fread.o \
2N/A fseek.o \
2N/A fseeko.o \
2N/A ftell.o \
2N/A ftello.o \
2N/A fwrite.o \
2N/A getc.o \
2N/A getchar.o \
2N/A getline.o \
2N/A getpass.o \
2N/A gets.o \
2N/A getw.o \
2N/A popen.o \
2N/A putc.o \
2N/A putchar.o \
2N/A puts.o \
2N/A putw.o \
2N/A rewind.o \
2N/A scanf.o \
2N/A setbuf.o \
2N/A setbuffer.o \
2N/A setvbuf.o \
2N/A system.o \
2N/A tempnam.o \
2N/A tmpfile.o \
2N/A tmpnam_r.o \
2N/A ungetc.o \
2N/A mse.o \
2N/A vscanf.o \
2N/A vwscanf.o \
2N/A wscanf.o
2N/A
2N/APORTI18N= \
2N/A __fgetwc_xpg5.o \
2N/A __fgetws_xpg5.o \
2N/A __fputwc_xpg5.o \
2N/A __fputws_xpg5.o \
2N/A __ungetwc_xpg5.o \
2N/A getwchar.o \
2N/A putwchar.o \
2N/A putws.o \
2N/A strcasecmp.o \
2N/A strcasestr.o \
2N/A strncasecmp.o \
2N/A strtows.o \
2N/A wcsnlen.o \
2N/A wcstoimax.o \
2N/A wcstol.o \
2N/A wcstoul.o \
2N/A wcswcs.o \
2N/A wscasecmp.o \
2N/A wscat.o \
2N/A wschr.o \
2N/A wscmp.o \
2N/A wscpy.o \
2N/A wscspn.o \
2N/A wsdup.o \
2N/A wslen.o \
2N/A wsncasecmp.o \
2N/A wsncat.o \
2N/A wsncmp.o \
2N/A wsncpy.o \
2N/A wspbrk.o \
2N/A wsprintf.o \
2N/A wsrchr.o \
2N/A wsscanf.o \
2N/A wsspn.o \
2N/A wstod.o \
2N/A wstok.o \
2N/A wstol.o \
2N/A wstoll.o \
2N/A wsxfrm.o \
2N/A wmemchr.o \
2N/A wmemcmp.o \
2N/A wmemcpy.o \
2N/A wmemmove.o \
2N/A wmemset.o \
2N/A wcsstr.o \
2N/A gettext.o \
2N/A gettext_real.o \
2N/A gettext_util.o \
2N/A gettext_gnu.o \
2N/A plural_parser.o \
2N/A wdresolve.o \
2N/A _ctype.o \
2N/A isascii.o \
2N/A toascii.o
2N/A
2N/APORTI18N_COND= \
2N/A wcstol_longlong.o \
2N/A wcstoul_longlong.o
2N/A
2N/AAIOOBJS= \
2N/A aio.o \
2N/A aio_alloc.o \
2N/A posix_aio.o
2N/A
2N/ARTOBJS= \
2N/A clock_timer.o \
2N/A mqueue.o \
2N/A pos4obj.o \
2N/A sched.o \
2N/A sem.o \
2N/A shm.o \
2N/A sigev_thread.o
2N/A
2N/ATPOOLOBJS= \
2N/A thread_pool.o
2N/A
2N/ATHREADSOBJS= \
2N/A alloc.o \
2N/A assfail.o \
2N/A cancel.o \
2N/A door_calls.o \
2N/A pthr_attr.o \
2N/A pthr_barrier.o \
2N/A pthr_cond.o \
2N/A pthr_mutex.o \
2N/A pthr_rwlock.o \
2N/A pthread.o \
2N/A rwlock.o \
2N/A scalls.o \
2N/A sema.o \
2N/A sigaction.o \
2N/A spawn.o \
2N/A synch.o \
2N/A tdb_agent.o \
2N/A thr.o \
2N/A thread_interface.o \
2N/A tls.o \
2N/A tsd.o
2N/A
2N/ATHREADSMACHOBJS= \
2N/A machdep.o
2N/A
2N/ATHREADSASMOBJS= \
2N/A asm_subr.o
2N/A
2N/AUNICODEOBJS= \
2N/A u8_textprep.o \
2N/A uconv.o
2N/A
2N/AUNWINDMACHOBJS= \
2N/A unwind.o
2N/A
2N/AUNWINDASMOBJS= \
2N/A unwind_frame.o
2N/A
2N/A# objects that implement the transitional large file API
2N/APORTSYS64= \
2N/A lockf64.o \
2N/A stat64.o
2N/A
2N/APORTSYS= \
2N/A _autofssys.o \
2N/A access.o \
2N/A acctctl.o \
2N/A bsd_signal.o \
2N/A chmod.o \
2N/A chown.o \
2N/A corectl.o \
2N/A exacctsys.o \
2N/A execl.o \
2N/A execle.o \
2N/A execv.o \
2N/A execve.o \
2N/A fcntl.o \
2N/A getpagesizes.o \
2N/A getpeerucred.o \
2N/A inst_sync.o \
2N/A issetugid.o \
2N/A label.o \
2N/A link.o \
2N/A lockf.o \
2N/A lwp.o \
2N/A lwp_cond.o \
2N/A lwp_rwlock.o \
2N/A lwp_sigmask.o \
2N/A meminfosys.o \
2N/A mkdir.o \
2N/A mknod.o \
2N/A msgsys.o \
2N/A nfssys.o \
2N/A open.o \
2N/A pgrpsys.o \
2N/A posix_sigwait.o \
2N/A ppriv.o \
2N/A psetsys.o \
2N/A rctlsys.o \
2N/A readlink.o \
2N/A rename.o \
2N/A sbrk.o \
2N/A semsys.o \
2N/A set_errno.o \
2N/A sharefs.o \
2N/A shmsys.o \
2N/A sidsys.o \
2N/A siginterrupt.o \
2N/A signal.o \
2N/A sigpending.o \
2N/A sigstack.o \
2N/A stat.o \
2N/A symlink.o \
2N/A tasksys.o \
2N/A time.o \
2N/A time_util.o \
2N/A ucontext.o \
2N/A unlink.o \
2N/A ustat.o \
2N/A utime.o \
2N/A zone.o
2N/A
2N/APORTREGEX= \
2N/A glob.o \
2N/A regcmp.o \
2N/A regex.o \
2N/A wordexp.o
2N/A
2N/ALIBSECDB= \
2N/A parse.o \
2N/A chkauthattr.o \
2N/A secdb.o \
2N/A getauthattr.o \
2N/A getexecattr.o \
2N/A getprofattr.o \
2N/A getuserattr.o
2N/A
2N/AVALUES= values-Xa.o
2N/A
2N/AMOSTOBJS= \
2N/A $(STRETS) \
2N/A $(CRTOBJS) \
2N/A $(DYNOBJS) \
2N/A $(FPOBJS) \
2N/A $(FPASMOBJS) \
2N/A $(ATOMICOBJS) \
2N/A $(XATTROBJS) \
2N/A $(COMOBJS) \
2N/A $(DTRACEOBJS) \
2N/A $(GENOBJS) \
2N/A $(PRFOBJS) \
2N/A $(PORTFP) \
2N/A $(PORTGEN) \
2N/A $(PORTGEN64) \
2N/A $(PORTI18N) \
2N/A $(PORTI18N_COND) \
2N/A $(PORTPRINT) \
2N/A $(PORTPRINT_C89) \
2N/A $(PORTPRINT_W) \
2N/A $(PORTREGEX) \
2N/A $(PORTSTDIO) \
2N/A $(PORTSTDIO64) \
2N/A $(PORTSTDIO_C89) \
2N/A $(PORTSTDIO_W) \
2N/A $(PORTSYS) \
2N/A $(PORTSYS64) \
2N/A $(AIOOBJS) \
2N/A $(RTOBJS) \
2N/A $(TPOOLOBJS) \
2N/A $(THREADSOBJS) \
2N/A $(THREADSMACHOBJS) \
2N/A $(THREADSASMOBJS) \
2N/A $(UNICODEOBJS) \
2N/A $(UNWINDMACHOBJS) \
2N/A $(UNWINDASMOBJS) \
2N/A $(COMSYSOBJS) \
2N/A $(SYSOBJS) \
2N/A $(COMSYSOBJS64) \
2N/A $(SYSOBJS64) \
2N/A $(LIBSECDB) \
2N/A $(VALUES)
2N/A
2N/ATRACEOBJS= \
2N/A plockstat.o
2N/A
2N/A# NOTE: libc.so.1 must be linked with the minimal crti.o and crtn.o
2N/A# modules whose source is provided in the $(SRC)/lib/common directory.
2N/A# This must be done because otherwise the Sun C compiler would insert
2N/A# its own versions of these modules and those versions contain code
2N/A# to call out to C++ initialization functions. Such C++ initialization
2N/A# functions can call back into libc before thread initialization is
2N/A# complete and this leads to segmentation violations and other problems.
2N/A# Since libc contains no C++ code, linking with the minimal crti.o and
2N/A# crtn.o modules is safe and avoids the problems described above.
2N/AOBJECTS= $(CRTI) $(MOSTOBJS) $(CRTN)
2N/ACRTSRCS= ../../common/sparc
2N/A
2N/A# include common library definitions
2N/Ainclude $(SRC)/lib/Makefile.lib
2N/A
2N/A# Adjust FPASMOBJS now that __GNUC is inherited.
2N/A$(__GNUC)FPASMOBJS += __quad.o
2N/A
2N/A# NOTE: libc_i18n.a will be part of libc.so.1. Therefore, the compilation
2N/A# conditions such as the settings of CFLAGS and CPPFLAGS for the libc_i18n stuff
2N/A# need to be compatible with the ones for the libc stuff. Whenever the changes
2N/A# that affect the compilation conditions of libc happened, those for libc_i18n
2N/A# also need to be updated.
2N/A
2N/A# we need to override the default SONAME here because we might
2N/A# be building a variant object (still libc.so.1, but different filename)
2N/ASONAME = libc.so.1
2N/A
2N/ACFLAGS += $(CCVERBOSE)
2N/A
2N/A# This is necessary to avoid problems with calling _ex_unwind().
2N/A# We probably don't want any inlining anyway.
2N/ACFLAGS += -xinline=
2N/A
2N/A# Setting THREAD_DEBUG = -DTHREAD_DEBUG (make THREAD_DEBUG=-DTHREAD_DEBUG ...)
2N/A# enables ASSERT() checking in the threads portion of the library.
2N/A# This is automatically enabled for DEBUG builds, not for non-debug builds.
2N/ATHREAD_DEBUG =
2N/A$(NOT_RELEASE_BUILD)THREAD_DEBUG = -DTHREAD_DEBUG
2N/A
2N/AALTPICS= $(TRACEOBJS:%=pics/%)
2N/A
2N/A$(DYNLIB) := PICS += $(ROOTFS_LIBDIR)/libc_i18n.a
2N/A$(DYNLIB) := BUILD.SO = $(LD) -o $@ -G $(DYNFLAGS) $(PICS) $(ALTPICS) $(EXTPICS)
2N/A
2N/AMAPFILES = $(LIBCDIR)/port/mapfile-vers
2N/A
2N/ACFLAGS += $(EXTN_CFLAGS)
2N/ACPPFLAGS= -D_REENTRANT -Dsparc $(EXTN_CPPFLAGS) $(THREAD_DEBUG) \
2N/A -I$(LIBCBASE)/inc -I$(LIBCDIR)/inc $(CPPFLAGS.master)
2N/AASFLAGS= $(EXTN_ASFLAGS) -K pic -P -D__STDC__ -D_ASM $(CPPFLAGS) $(sparc_AS_XARCH)
2N/A
2N/A# Inform the run-time linker about libc specialized initialization
2N/ARTLDINFO = -z rtldinfo=tls_rtldinfo
2N/ADYNFLAGS += $(RTLDINFO)
2N/A
2N/A# Force libc's internal references to be resolved immediately upon loading
2N/A# in order to avoid critical region problems. Since almost all libc symbols
2N/A# are marked 'protected' in the mapfiles, this is a minimal set (15 to 20).
2N/ADYNFLAGS += -znow
2N/A
2N/ADYNFLAGS += -e __rtboot
2N/ADYNFLAGS += $(EXTN_DYNFLAGS)
2N/A
2N/A# Inform the kernel about the initial DTrace area (in case
2N/A# libc is being used as the interpreter / runtime linker).
2N/ADTRACE_DATA = -zdtrace=dtrace_data
2N/ADYNFLAGS += $(DTRACE_DATA)
2N/A
2N/A# DTrace needs an executable data segment.
2N/AMAPFILE.NED=
2N/A
2N/ABUILD.s= $(AS) $(ASFLAGS) $< -o $@
2N/A
2N/A# Override this top level flag so the compiler builds in its native
2N/A# C99 mode. This has been enabled to support the complex arithmetic
2N/A# added to libc.
2N/AC99MODE= $(C99_ENABLE)
2N/A
2N/A# libc method of building an archive
2N/A# The "$(GREP) -v ' L '" part is necessary only until
2N/A# lorder is fixed to ignore thread-local variables.
2N/ABUILD.AR= $(RM) $@ ; \
2N/A $(AR) q $@ `$(LORDER) $(MOSTOBJS:%=$(DIR)/%) | $(GREP) -v ' L ' | $(TSORT)`
2N/A
2N/A# extra files for the clean target
2N/ACLEANFILES= \
2N/A $(LIBCDIR)/port/gen/errlst.c \
2N/A $(LIBCDIR)/port/gen/new_list.c \
2N/A assym.h \
2N/A genassym \
2N/A $(LIBCBASE)/crt/_rtld.s \
2N/A $(LIBCBASE)/crt/_rtbootld.s \
2N/A pics/_rtbootld.o \
2N/A pics/crti.o \
2N/A pics/crtn.o \
2N/A $(ALTPICS)
2N/A
2N/ACLOBBERFILES += $(LIB_PIC)
2N/A
2N/A# list of C source for lint
2N/ASRCS= \
2N/A $(ATOMICOBJS:%.o=$(SRC)/common/atomic/%.c) \
2N/A $(XATTROBJS:%.o=$(SRC)/common/xattr/%.c) \
2N/A $(COMOBJS:%.o=$(SRC)/common/util/%.c) \
2N/A $(DTRACEOBJS:%.o=$(SRC)/common/dtrace/%.c) \
2N/A $(PORTFP:%.o=$(LIBCDIR)/port/fp/%.c) \
2N/A $(PORTGEN:%.o=$(LIBCDIR)/port/gen/%.c) \
2N/A $(PORTI18N:%.o=$(LIBCDIR)/port/i18n/%.c) \
2N/A $(PORTPRINT:%.o=$(LIBCDIR)/port/print/%.c) \
2N/A $(PORTREGEX:%.o=$(LIBCDIR)/port/regex/%.c) \
2N/A $(PORTSTDIO:%.o=$(LIBCDIR)/port/stdio/%.c) \
2N/A $(PORTSYS:%.o=$(LIBCDIR)/port/sys/%.c) \
2N/A $(AIOOBJS:%.o=$(LIBCDIR)/port/aio/%.c) \
2N/A $(RTOBJS:%.o=$(LIBCDIR)/port/rt/%.c) \
2N/A $(TPOOLOBJS:%.o=$(LIBCDIR)/port/tpool/%.c) \
2N/A $(THREADSOBJS:%.o=$(LIBCDIR)/port/threads/%.c) \
2N/A $(THREADSMACHOBJS:%.o=$(LIBCDIR)/$(MACH)/threads/%.c) \
2N/A $(UNICODEOBJS:%.o=$(SRC)/common/unicode/%.c) \
2N/A $(UNWINDMACHOBJS:%.o=$(LIBCDIR)/port/unwind/%.c) \
2N/A $(FPOBJS:%.o=$(LIBCDIR)/$(MACH)/fp/%.c) \
2N/A $(LIBSECDB:%.o=$(LIBCDIR)/port/gen/%.c) \
2N/A $(LIBCBASE)/crt/_ftou.c \
2N/A $(LIBCBASE)/gen/_xregs_clrptr.c \
2N/A $(LIBCBASE)/gen/byteorder.c \
2N/A $(LIBCBASE)/gen/ecvt.c \
2N/A $(LIBCBASE)/gen/getctxt.c \
2N/A $(LIBCBASE)/gen/lmul.c \
2N/A $(LIBCBASE)/gen/makectxt.c \
2N/A $(LIBCBASE)/gen/siginfolst.c \
2N/A $(LIBCBASE)/gen/siglongjmp.c \
2N/A $(LIBCBASE)/gen/swapctxt.c \
2N/A $(LIBCBASE)/sys/ptrace.c \
2N/A $(LIBCBASE)/sys/uadmin.c
2N/A
2N/A# conditional assignments
2N/A$(DYNLIB) := CRTI = crti.o
2N/A$(DYNLIB) := CRTN = crtn.o
2N/A
2N/A# Files which need the threads .il inline template
2N/ATIL= \
2N/A aio.o \
2N/A alloc.o \
2N/A assfail.o \
2N/A atexit.o \
2N/A atfork.o \
2N/A cancel.o \
2N/A door_calls.o \
2N/A err.o \
2N/A errno.o \
2N/A getctxt.o \
2N/A lwp.o \
2N/A ma.o \
2N/A machdep.o \
2N/A posix_aio.o \
2N/A pthr_attr.o \
2N/A pthr_barrier.o \
2N/A pthr_cond.o \
2N/A pthr_mutex.o \
2N/A pthr_rwlock.o \
2N/A pthread.o \
2N/A rand.o \
2N/A rwlock.o \
2N/A scalls.o \
2N/A sched.o \
2N/A sema.o \
2N/A sigaction.o \
2N/A sigev_thread.o \
2N/A spawn.o \
2N/A stack.o \
2N/A swapctxt.o \
2N/A synch.o \
2N/A tdb_agent.o \
2N/A thr.o \
2N/A thread_interface.o \
2N/A thread_pool.o \
2N/A tls.o \
2N/A tsd.o \
2N/A unwind.o
2N/A
2N/A$(TIL:%=pics/%) := CFLAGS += $(LIBCBASE)/threads/sparc.il
2N/A
2N/A# This hack is needed until the sparc gcc is fixed for TLS
2N/Apics/tls_data.o := CC = env 'CW_NO_SHADOW=1' $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
2N/A
2N/A# special kludge for inlines with 'cas':
2N/Apics/rwlock.o pics/synch.o pics/lwp.o pics/door_calls.o := \
2N/A sparc_CFLAGS += -_gcc=-Wa,-xarch=v8plus
2N/A
2N/A# Files in port/fp subdirectory that need base.il inline template
2N/AIL= \
2N/A __flt_decim.o \
2N/A decimal_bin.o
2N/A
2N/A$(IL:%=pics/%) := CFLAGS += $(LIBCBASE)/fp/base.il
2N/A
2N/A# Files in fp subdirectory which need __quad.il inline template
2N/AQIL= \
2N/A _Q_add.o \
2N/A _Q_cmp.o \
2N/A _Q_cmpe.o \
2N/A _Q_div.o \
2N/A _Q_dtoq.o \
2N/A _Q_fcc.o \
2N/A _Q_mul.o \
2N/A _Q_qtod.o \
2N/A _Q_qtoi.o \
2N/A _Q_qtos.o \
2N/A _Q_qtou.o \
2N/A _Q_sqrt.o \
2N/A _Q_stoq.o \
2N/A _Q_sub.o
2N/A
2N/A$(QIL:%=pics/%) := CFLAGS += $(LIBCDIR)/$(MACH)/fp/__quad.il
2N/Apics/_Q%.o := sparc_COPTFLAG = -xO4 -dalign
2N/Apics/__quad%.o := sparc_COPTFLAG = -xO4 -dalign
2N/A
2N/A# large-file-aware components that should be built large
2N/A
2N/A$(COMSYSOBJS64:%=pics/%) := \
2N/A CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
2N/A
2N/A$(SYSOBJS64:%=pics/%) := \
2N/A CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
2N/A
2N/A$(PORTGEN64:%=pics/%) := \
2N/A CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
2N/A
2N/A$(PORTSTDIO64:%=pics/%) := \
2N/A CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
2N/A
2N/A$(PORTSYS64:%=pics/%) := \
2N/A CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
2N/A
2N/A$(PORTSTDIO_W:%=pics/%) := \
2N/A CPPFLAGS += -D_WIDE
2N/A
2N/A$(PORTPRINT_W:%=pics/%) := \
2N/A CPPFLAGS += -D_WIDE
2N/A
2N/A# printf/scanf functions to support c89-sized intmax_t variables
2N/A$(PORTPRINT_C89:%=pics/%) := \
2N/A CPPFLAGS += -D_C89_INTMAX32
2N/A
2N/A$(PORTSTDIO_C89:%=pics/%) := \
2N/A CPPFLAGS += -D_C89_INTMAX32
2N/A
2N/A$(PORTI18N_COND:%=pics/%) := \
2N/A CPPFLAGS += -D_WCS_LONGLONG
2N/A
2N/A# Files which need extra optimization
2N/Apics/getenv.o := sparc_COPTFLAG = -xO4
2N/A
2N/A.KEEP_STATE:
2N/A
2N/Aall: stub $(LIBS) $(LIB_PIC)
2N/A
2N/Astubinstall: stub $(STUBROOTFS_LIBS) $(STUBROOTFS_LINKS)
2N/A
2N/Alint := CPPFLAGS += -I$(LIBCDIR)/$(MACH)/fp
2N/Alint := CPPFLAGS += -D_MSE_INT_H -D_LCONV_C99
2N/Alint := LINTFLAGS += -mn
2N/A
2N/Alint:
2N/A @echo $(LINT.c) ... $(LDLIBS)
2N/A @$(LINT.c) $(SRCS) $(LDLIBS)
2N/A
2N/A$(LINTLIB):= SRCS=$(LIBCDIR)/port/llib-lc
2N/A$(LINTLIB):= CPPFLAGS += -D_MSE_INT_H
2N/A$(LINTLIB):= LINTFLAGS=-nvx
2N/A
2N/A# object files that depend on inline template
2N/A$(TIL:%=pics/%): $(LIBCBASE)/threads/sparc.il
2N/A$(IL:%=pics/%): $(LIBCBASE)/fp/base.il
2N/A$(QIL:%=pics/%): $(LIBCDIR)/$(MACH)/fp/__quad.il
2N/A
2N/A# include common libc targets
2N/Ainclude $(LIBCDIR)/Makefile.targ
2N/A
2N/A# We need to strip out all CTF and DOF data from the static library
2N/A$(LIB_PIC) := DIR = pics
2N/A$(LIB_PIC): pics $$(PICS)
2N/A $(BUILD.AR)
2N/A $(MCS) -d -n .SUNW_ctf $@ > /dev/null 2>&1
2N/A $(MCS) -d -n .SUNW_dof $@ > /dev/null 2>&1
2N/A $(AR) -ts $@ > /dev/null
2N/A $(POST_PROCESS_A)
2N/A
2N/A# special cases
2N/A$(STRETS:%=pics/%): $(LIBCBASE)/crt/stret.s
2N/A $(AS) $(ASFLAGS) -DSTRET$(@F:stret%.o=%) $(LIBCBASE)/crt/stret.s -o $@
2N/A $(POST_PROCESS_O)
2N/A
2N/A$(LIBCBASE)/crt/_rtbootld.s: $(LIBCBASE)/crt/_rtboot.s $(LIBCBASE)/crt/_rtld.c
2N/A $(CC) $(CPPFLAGS) $(CTF_FLAGS) -O -S -K pic \
2N/A $(LIBCBASE)/crt/_rtld.c -o $(LIBCBASE)/crt/_rtld.s
2N/A $(CAT) $(LIBCBASE)/crt/_rtboot.s $(LIBCBASE)/crt/_rtld.s > $@
2N/A $(RM) $(LIBCBASE)/crt/_rtld.s
2N/A
2N/A# partially built from C source
2N/Apics/_rtbootld.o: $(LIBCBASE)/crt/_rtbootld.s
2N/A $(AS) $(ASFLAGS) $(LIBCBASE)/crt/_rtbootld.s -o $@
2N/A $(CTFCONVERT_O)
2N/A
2N/AASSYMDEP_OBJS= \
2N/A _lwp_mutex_unlock.o \
2N/A _stack_grow.o \
2N/A asm_subr.o \
2N/A setjmp.o \
2N/A smt_pause.o \
2N/A tls_get_addr.o \
2N/A unwind_frame.o \
2N/A vforkx.o
2N/A
2N/A$(ASSYMDEP_OBJS:%=pics/%) := CPPFLAGS += -I.
2N/A
2N/A$(ASSYMDEP_OBJS:%=pics/%): assym.h
2N/A
2N/A# assym.h build rules
2N/A
2N/Aassym.h := CPPFLAGS += -I. -g
2N/A
2N/AGENASSYM_C = $(LIBCDIR)/$(MACH)/genassym.c
2N/A
2N/A# XXX A hack. Perhaps this should be 'CPPFLAGS.native' and
2N/A# live in Makefile.master
2N/A
2N/ACPPFLAGS.genassym = \
2N/A $(ENVCPPFLAGS1) $(ENVCPPFLAGS2) $(ENVCPPFLAGS3) $(ENVCPPFLAGS4)
2N/A
2N/Agenassym: $(GENASSYM_C)
2N/A $(NATIVECC) -I$(LIBCBASE)/inc -I$(LIBCDIR)/inc \
2N/A $(CPPFLAGS.genassym) -o $@ $(GENASSYM_C)
2N/A
2N/AOFFSETS = $(LIBCDIR)/$(MACH)/offsets.in
2N/A
2N/Aassym.h: $(OFFSETS) genassym
2N/A $(OFFSETS_CREATE) <$(OFFSETS) >$@
2N/A ./genassym >>$@
2N/A
2N/A# derived C source and related explicit dependencies
2N/A$(LIBCDIR)/port/gen/errlst.c + \
2N/A$(LIBCDIR)/port/gen/new_list.c: $(LIBCDIR)/port/gen/errlist $(LIBCDIR)/port/gen/errlist.awk
2N/A cd $(LIBCDIR)/port/gen; pwd; $(AWK) -f errlist.awk < errlist
2N/A
2N/Apics/errlst.o: $(LIBCDIR)/port/gen/errlst.c
2N/A
2N/Apics/new_list.o: $(LIBCDIR)/port/gen/new_list.c