38 need replacement for tr
[illumos-gate.git] / usr / src / lib / libc / sparcv9 / Makefile.com
blob4eb9eb903ba38f80059d4db16536ca6e164f1526
2 # CDDL HEADER START
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
19 # CDDL HEADER END
23 # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
25 # Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
26 # Use is subject to license terms.
29 LIBCDIR=        $(SRC)/lib/libc
30 LIB_PIC=        libc_pic.a
31 VERS=           .1
32 CPP=            /usr/lib/cpp
33 TARGET_ARCH=    sparc
35 # objects are grouped by source directory
37 # Symbol capabilities objects.
38 EXTPICS=                        \
39         $(LIBCDIR)/capabilities/sun4u/sparcv9/pics/symcap.o \
40         $(LIBCDIR)/capabilities/sun4u-opl/sparcv9/pics/symcap.o \
41         $(LIBCDIR)/capabilities/sun4u-us3-hwcap1/sparcv9/pics/symcap.o \
42         $(LIBCDIR)/capabilities/sun4u-us3-hwcap2/sparcv9/pics/symcap.o \
43         $(LIBCDIR)/capabilities/sun4v-hwcap1/sparcv9/pics/symcap.o \
44         $(LIBCDIR)/capabilities/sun4v-hwcap2/sparcv9/pics/symcap.o
46 # local objects
47 STRETS=
49 CRTOBJS=                        \
50         __align_cpy_2.o         \
51         __align_cpy_4.o         \
52         __align_cpy_8.o         \
53         _ftou.o                 \
54         cerror.o
56 DYNOBJS=
58 FPOBJS=                         \
59         _D_cplx_div.o           \
60         _D_cplx_div_ix.o        \
61         _D_cplx_div_rx.o        \
62         _D_cplx_mul.o           \
63         _F_cplx_div.o           \
64         _F_cplx_div_ix.o        \
65         _F_cplx_div_rx.o        \
66         _F_cplx_mul.o           \
67         _Q_add.o                \
68         _Q_cmp.o                \
69         _Q_cmpe.o               \
70         _Q_cplx_div.o           \
71         _Q_cplx_div_ix.o        \
72         _Q_cplx_div_rx.o        \
73         _Q_cplx_lr_div.o        \
74         _Q_cplx_lr_div_ix.o     \
75         _Q_cplx_lr_div_rx.o     \
76         _Q_cplx_lr_mul.o        \
77         _Q_cplx_mul.o           \
78         _Q_div.o                \
79         _Q_dtoq.o               \
80         _Q_fcc.o                \
81         _Q_itoq.o               \
82         _Q_mul.o                \
83         _Q_neg.o                \
84         _Q_qtod.o               \
85         _Q_qtoi.o               \
86         _Q_qtos.o               \
87         _Q_qtou.o               \
88         _Q_scl.o                \
89         _Q_sqrt.o               \
90         _Q_stoq.o               \
91         _Q_sub.o                \
92         _Q_utoq.o
94 FPOBJS64=                       \
95         _Qp_qtox.o              \
96         _Qp_qtoux.o             \
97         _Qp_xtoq.o              \
98         _Qp_uxtoq.o             \
99         __dtoul.o               \
100         __ftoul.o
102 FPASMOBJS=                      \
103         _Q_get_rp_rd.o          \
104         __quad_mag64.o          \
105         fpgetmask.o             \
106         fpgetrnd.o              \
107         fpgetsticky.o           \
108         fpsetmask.o             \
109         fpsetrnd.o              \
110         fpsetsticky.o
112 $(__GNUC)FPASMOBJS +=           \
113         __quad.o
115 ATOMICOBJS=                     \
116         atomic.o
118 XATTROBJS=                      \
119         xattr_common.o
121 COMOBJS=                        \
122         bcmp.o                  \
123         bcopy.o                 \
124         bsearch.o               \
125         bzero.o                 \
126         ffs.o                   \
127         memccpy.o               \
128         qsort.o                 \
129         strtol.o                \
130         strtoul.o               \
131         strtoll.o               \
132         strtoull.o
134 GENOBJS=                        \
135         _getsp.o                \
136         _xregs_clrptr.o         \
137         abs.o                   \
138         alloca.o                \
139         byteorder.o             \
140         cuexit.o                \
141         ecvt.o                  \
142         getctxt.o               \
143         lock.o                  \
144         makectxt.o              \
145         memchr.o                \
146         memcmp.o                \
147         new_list.o              \
148         setjmp.o                \
149         siginfolst.o            \
150         siglongjmp.o            \
151         sparc_data.o            \
152         strcasecmp.o            \
153         strchr.o                \
154         strcmp.o                \
155         strlcpy.o               \
156         strncmp.o               \
157         strncpy.o               \
158         strnlen.o               \
159         swapctxt.o              \
160         sync_instruction_memory.o
162 # Preserved solely to ease maintenance of 32-bit and 64-bit library builds
163 # This macro should ALWAYS be empty; native APIs are already 'large file'.
164 COMSYSOBJS64=
166 SYSOBJS64=
168 COMSYSOBJS=                     \
169         __clock_timer.o         \
170         __getloadavg.o          \
171         __rusagesys.o           \
172         __signotify.o           \
173         __sigrt.o               \
174         __time.o                \
175         _lgrp_home_fast.o       \
176         _lgrpsys.o              \
177         _nfssys.o               \
178         _portfs.o               \
179         _pset.o                 \
180         _rpcsys.o               \
181         _sigaction.o            \
182         _so_accept.o            \
183         _so_bind.o              \
184         _so_connect.o           \
185         _so_getpeername.o       \
186         _so_getsockname.o       \
187         _so_getsockopt.o        \
188         _so_listen.o            \
189         _so_recv.o              \
190         _so_recvfrom.o          \
191         _so_recvmsg.o           \
192         _so_send.o              \
193         _so_sendmsg.o           \
194         _so_sendto.o            \
195         _so_setsockopt.o        \
196         _so_shutdown.o          \
197         _so_socket.o            \
198         _so_socketpair.o        \
199         _sockconfig.o           \
200         acct.o                  \
201         acl.o                   \
202         adjtime.o               \
203         alarm.o                 \
204         brk.o                   \
205         chdir.o                 \
206         chmod.o                 \
207         chroot.o                \
208         cladm.o                 \
209         close.o                 \
210         execve.o                \
211         exit.o                  \
212         facl.o                  \
213         fchdir.o                \
214         fchmod.o                \
215         fchroot.o               \
216         fdsync.o                \
217         fpathconf.o             \
218         fstatfs.o               \
219         fstatvfs.o              \
220         getcpuid.o              \
221         getdents.o              \
222         getegid.o               \
223         geteuid.o               \
224         getgid.o                \
225         getgroups.o             \
226         gethrtime.o             \
227         getitimer.o             \
228         getmsg.o                \
229         getpid.o                \
230         getpmsg.o               \
231         getppid.o               \
232         getrlimit.o             \
233         getuid.o                \
234         gtty.o                  \
235         install_utrap.o         \
236         ioctl.o                 \
237         kaio.o                  \
238         kill.o                  \
239         link.o                  \
240         llseek.o                \
241         lseek.o                 \
242         memcntl.o               \
243         mincore.o               \
244         mkdir.o                 \
245         mknod.o                 \
246         mmap.o                  \
247         mmapobjsys.o            \
248         modctl.o                \
249         mount.o                 \
250         mprotect.o              \
251         munmap.o                \
252         nice.o                  \
253         ntp_adjtime.o           \
254         ntp_gettime.o           \
255         p_online.o              \
256         pathconf.o              \
257         pause.o                 \
258         pcsample.o              \
259         pollsys.o               \
260         pread.o                 \
261         priocntlset.o           \
262         processor_bind.o        \
263         processor_info.o        \
264         profil.o                \
265         putmsg.o                \
266         putpmsg.o               \
267         pwrite.o                \
268         read.o                  \
269         readlink.o              \
270         readv.o                 \
271         resolvepath.o           \
272         seteguid.o              \
273         setgid.o                \
274         setgroups.o             \
275         setitimer.o             \
276         setreid.o               \
277         setrlimit.o             \
278         setuid.o                \
279         sigaltstk.o             \
280         sigprocmsk.o            \
281         sigsendset.o            \
282         sigsuspend.o            \
283         statfs.o                \
284         statvfs.o               \
285         stty.o                  \
286         symlink.o               \
287         sync.o                  \
288         sysconfig.o             \
289         sysfs.o                 \
290         sysinfo.o               \
291         syslwp.o                \
292         times.o                 \
293         ulimit.o                \
294         umask.o                 \
295         umount2.o               \
296         utssys.o                \
297         uucopy.o                \
298         vhangup.o               \
299         waitid.o                \
300         write.o                 \
301         writev.o                \
302         yield.o
304 SYSOBJS=                        \
305         __clock_gettime.o       \
306         __getcontext.o          \
307         __uadmin.o              \
308         _lwp_mutex_unlock.o     \
309         _stack_grow.o           \
310         door.o                  \
311         forkx.o                 \
312         forkallx.o              \
313         gettimeofday.o          \
314         pipe.o                  \
315         sparc_utrap_install.o   \
316         syscall.o               \
317         tls_get_addr.o          \
318         uadmin.o                \
319         umount.o                \
320         uname.o                 \
321         vforkx.o
323 # Preserved solely to ease maintenance of 32-bit and 64-bit library builds
324 # This macro should ALWAYS be empty; native APIs are already 'large file'.
325 PORTGEN64=
327 # objects from source under $(LIBCDIR)/port
328 PORTFP=                         \
329         __flt_decim.o           \
330         __flt_rounds.o          \
331         __tbl_10_b.o            \
332         __tbl_10_h.o            \
333         __tbl_10_s.o            \
334         __tbl_2_b.o             \
335         __tbl_2_h.o             \
336         __tbl_2_s.o             \
337         __tbl_fdq.o             \
338         __tbl_tens.o            \
339         __x_power.o             \
340         _base_sup.o             \
341         aconvert.o              \
342         decimal_bin.o           \
343         double_decim.o          \
344         econvert.o              \
345         fconvert.o              \
346         file_decim.o            \
347         finite.o                \
348         fp_data.o               \
349         func_decim.o            \
350         gconvert.o              \
351         hex_bin.o               \
352         ieee_globals.o          \
353         pack_float.o            \
354         sigfpe.o                \
355         string_decim.o
357 PORTGEN=                        \
358         _env_data.o             \
359         _xftw.o                 \
360         a64l.o                  \
361         abort.o                 \
362         addsev.o                \
363         assert.o                \
364         attrat.o                \
365         atof.o                  \
366         atoi.o                  \
367         atol.o                  \
368         atoll.o                 \
369         attropen.o              \
370         atexit.o                \
371         atfork.o                \
372         basename.o              \
373         calloc.o                \
374         catgets.o               \
375         catopen.o               \
376         cfgetispeed.o           \
377         cfgetospeed.o           \
378         cfree.o                 \
379         cfsetispeed.o           \
380         cfsetospeed.o           \
381         cftime.o                \
382         clock.o                 \
383         closedir.o              \
384         closefrom.o             \
385         confstr.o               \
386         crypt.o                 \
387         csetlen.o               \
388         ctime.o                 \
389         ctime_r.o               \
390         daemon.o                \
391         deflt.o                 \
392         directio.o              \
393         dirname.o               \
394         div.o                   \
395         drand48.o               \
396         dup.o                   \
397         env_data.o              \
398         err.o                   \
399         errno.o                 \
400         euclen.o                \
401         event_port.o            \
402         execvp.o                \
403         fattach.o               \
404         fdetach.o               \
405         fdopendir.o             \
406         fmtmsg.o                \
407         ftime.o                 \
408         ftok.o                  \
409         ftw.o                   \
410         gcvt.o                  \
411         getauxv.o               \
412         getcwd.o                \
413         getdate_err.o           \
414         getdtblsize.o           \
415         getenv.o                \
416         getexecname.o           \
417         getgrnam.o              \
418         getgrnam_r.o            \
419         gethostid.o             \
420         gethostname.o           \
421         gethz.o                 \
422         getisax.o               \
423         getloadavg.o            \
424         getlogin.o              \
425         getmntent.o             \
426         getnetgrent.o           \
427         getopt.o                \
428         getopt_long.o           \
429         getpagesize.o           \
430         getpw.o                 \
431         getpwnam.o              \
432         getpwnam_r.o            \
433         getrusage.o             \
434         getspent.o              \
435         getspent_r.o            \
436         getsubopt.o             \
437         gettxt.o                \
438         getusershell.o          \
439         getut.o                 \
440         getutx.o                \
441         getvfsent.o             \
442         getwd.o                 \
443         getwidth.o              \
444         getxby_door.o           \
445         gtxt.o                  \
446         hsearch.o               \
447         iconv.o                 \
448         imaxabs.o               \
449         imaxdiv.o               \
450         index.o                 \
451         initgroups.o            \
452         insque.o                \
453         isaexec.o               \
454         isastream.o             \
455         isatty.o                \
456         killpg.o                \
457         klpdlib.o               \
458         l64a.o                  \
459         lckpwdf.o               \
460         lconstants.o            \
461         ldivide.o               \
462         lexp10.o                \
463         lfind.o                 \
464         lfmt.o                  \
465         lfmt_log.o              \
466         lldiv.o                 \
467         llog10.o                \
468         lltostr.o               \
469         lmath.o                 \
470         localtime.o             \
471         lsearch.o               \
472         madvise.o               \
473         malloc.o                \
474         memalign.o              \
475         mkdev.o                 \
476         mkdtemp.o               \
477         mkfifo.o                \
478         mkstemp.o               \
479         mktemp.o                \
480         mlock.o                 \
481         mlockall.o              \
482         mon.o                   \
483         msync.o                 \
484         munlock.o               \
485         munlockall.o            \
486         ndbm.o                  \
487         nftw.o                  \
488         nlspath_checks.o        \
489         nsparse.o               \
490         nss_common.o            \
491         nss_dbdefs.o            \
492         nss_deffinder.o         \
493         opendir.o               \
494         opt_data.o              \
495         perror.o                \
496         pfmt.o                  \
497         pfmt_data.o             \
498         pfmt_print.o            \
499         plock.o                 \
500         poll.o                  \
501         posix_fadvise.o         \
502         posix_fallocate.o       \
503         posix_madvise.o         \
504         posix_memalign.o        \
505         priocntl.o              \
506         privlib.o               \
507         priv_str_xlate.o        \
508         psiginfo.o              \
509         psignal.o               \
510         pt.o                    \
511         putpwent.o              \
512         putspent.o              \
513         raise.o                 \
514         rand.o                  \
515         random.o                \
516         rctlops.o               \
517         readdir.o               \
518         readdir_r.o             \
519         realpath.o              \
520         reboot.o                \
521         regexpr.o               \
522         remove.o                \
523         rewinddir.o             \
524         rindex.o                \
525         scandir.o               \
526         seekdir.o               \
527         select.o                \
528         setlabel.o              \
529         setpriority.o           \
530         settimeofday.o          \
531         sh_locks.o              \
532         sigflag.o               \
533         siglist.o               \
534         sigsend.o               \
535         sigsetops.o             \
536         ssignal.o               \
537         stack.o                 \
538         str2sig.o               \
539         strcase_charmap.o       \
540         strcat.o                \
541         strcspn.o               \
542         strdup.o                \
543         strerror.o              \
544         strncat.o               \
545         strlcat.o               \
546         strncasecmp.o           \
547         strpbrk.o               \
548         strrchr.o               \
549         strsep.o                \
550         strsignal.o             \
551         strspn.o                \
552         strstr.o                \
553         strtod.o                \
554         strtoimax.o             \
555         strtok.o                \
556         strtok_r.o              \
557         strtoumax.o             \
558         swab.o                  \
559         swapctl.o               \
560         sysconf.o               \
561         syslog.o                \
562         tcdrain.o               \
563         tcflow.o                \
564         tcflush.o               \
565         tcgetattr.o             \
566         tcgetpgrp.o             \
567         tcgetsid.o              \
568         tcsendbreak.o           \
569         tcsetattr.o             \
570         tcsetpgrp.o             \
571         tell.o                  \
572         telldir.o               \
573         tfind.o                 \
574         time_data.o             \
575         time_gdata.o            \
576         truncate.o              \
577         tsdalloc.o              \
578         tsearch.o               \
579         ttyname.o               \
580         ttyslot.o               \
581         ualarm.o                \
582         ucred.o                 \
583         valloc.o                \
584         vlfmt.o                 \
585         vpfmt.o                 \
586         waitpid.o               \
587         walkstack.o             \
588         wdata.o                 \
589         xgetwidth.o             \
590         xpg4.o                  \
591         xpg6.o
593 PORTPRINT_W=                    \
594         doprnt_w.o
596 PORTPRINT=                      \
597         asprintf.o              \
598         doprnt.o                \
599         fprintf.o               \
600         printf.o                \
601         snprintf.o              \
602         sprintf.o               \
603         vfprintf.o              \
604         vprintf.o               \
605         vsnprintf.o             \
606         vsprintf.o              \
607         vwprintf.o              \
608         wprintf.o
610 # Preserved solely to ease maintenance of 32-bit and 64-bit library builds
611 # This macro should ALWAYS be empty; native APIs are already 'large file'.
612 PORTSTDIO64=
614 PORTSTDIO_W=                    \
615         doscan_w.o
617 PORTSTDIO=                      \
618         __extensions.o          \
619         _endopen.o              \
620         _filbuf.o               \
621         _findbuf.o              \
622         _flsbuf.o               \
623         _wrtchk.o               \
624         clearerr.o              \
625         ctermid.o               \
626         ctermid_r.o             \
627         cuserid.o               \
628         data.o                  \
629         doscan.o                \
630         fdopen.o                \
631         feof.o                  \
632         ferror.o                \
633         fgetc.o                 \
634         fgets.o                 \
635         fileno.o                \
636         flockf.o                \
637         flush.o                 \
638         fopen.o                 \
639         fpos.o                  \
640         fputc.o                 \
641         fputs.o                 \
642         fread.o                 \
643         fseek.o                 \
644         fseeko.o                \
645         ftell.o                 \
646         ftello.o                \
647         fwrite.o                \
648         getc.o                  \
649         getchar.o               \
650         getpass.o               \
651         gets.o                  \
652         getw.o                  \
653         popen.o                 \
654         putc.o                  \
655         putchar.o               \
656         puts.o                  \
657         putw.o                  \
658         rewind.o                \
659         scanf.o                 \
660         setbuf.o                \
661         setbuffer.o             \
662         setvbuf.o               \
663         system.o                \
664         tempnam.o               \
665         tmpfile.o               \
666         tmpnam_r.o              \
667         ungetc.o                \
668         mse.o                   \
669         vscanf.o                \
670         vwscanf.o               \
671         wscanf.o
673 PORTI18N=                       \
674         getwchar.o              \
675         putwchar.o              \
676         putws.o                 \
677         strtows.o               \
678         wcstoimax.o             \
679         wcstol.o                \
680         wcstoul.o               \
681         wcswcs.o                \
682         wscasecmp.o             \
683         wscat.o                 \
684         wschr.o                 \
685         wscmp.o                 \
686         wscpy.o                 \
687         wscspn.o                \
688         wsdup.o                 \
689         wslen.o                 \
690         wsncasecmp.o            \
691         wsncat.o                \
692         wsncmp.o                \
693         wsncpy.o                \
694         wspbrk.o                \
695         wsprintf.o              \
696         wsrchr.o                \
697         wsscanf.o               \
698         wsspn.o                 \
699         wstod.o                 \
700         wstok.o                 \
701         wstol.o                 \
702         wstoll.o                \
703         wsxfrm.o                \
704         wmemchr.o               \
705         wmemcmp.o               \
706         wmemcpy.o               \
707         wmemmove.o              \
708         wmemset.o               \
709         wcsstr.o                \
710         gettext.o               \
711         gettext_real.o          \
712         gettext_util.o          \
713         gettext_gnu.o           \
714         plural_parser.o         \
715         wdresolve.o             \
716         _ctype.o                \
717         isascii.o               \
718         isdigit.o               \
719         toascii.o
721 PORTI18N_COND=                  \
722         wcstol_longlong.o       \
723         wcstoul_longlong.o
725 PORTLOCALE=                     \
726         ascii.o                 \
727         big5.o                  \
728         btowc.o                 \
729         collate.o               \
730         collcmp.o               \
731         euc.o                   \
732         fnmatch.o               \
733         fgetwc.o                \
734         fgetws.o                \
735         fputwc.o                \
736         fputws.o                \
737         fwide.o                 \
738         gb18030.o               \
739         gb2312.o                \
740         gbk.o                   \
741         getdate.o               \
742         iswctype.o              \
743         ldpart.o                \
744         lmessages.o             \
745         lnumeric.o              \
746         lmonetary.o             \
747         localeconv.o            \
748         mbftowc.o               \
749         mblen.o                 \
750         mbrlen.o                \
751         mbrtowc.o               \
752         mbsinit.o               \
753         mbsrtowcs.o             \
754         mbstowcs.o              \
755         mbtowc.o                \
756         mskanji.o               \
757         nextwctype.o            \
758         nl_langinfo.o           \
759         none.o                  \
760         regcomp.o               \
761         regfree.o               \
762         regerror.o              \
763         regexec.o               \
764         rune.o                  \
765         runetype.o              \
766         setlocale.o             \
767         setrunelocale.o         \
768         strcoll.o               \
769         strfmon.o               \
770         strftime.o              \
771         strptime.o              \
772         strxfrm.o               \
773         table.o                 \
774         timelocal.o             \
775         tolower.o               \
776         towlower.o              \
777         ungetwc.o               \
778         utf8.o                  \
779         wcrtomb.o               \
780         wcscoll.o               \
781         wcsftime.o              \
782         wcsrtombs.o             \
783         wcswidth.o              \
784         wcstombs.o              \
785         wcsxfrm.o               \
786         wctob.o                 \
787         wctomb.o                \
788         wctrans.o               \
789         wctype.o                \
790         wcwidth.o               \
791         wscol.o
793 AIOOBJS=                        \
794         aio.o                   \
795         aio_alloc.o             \
796         posix_aio.o
798 RTOBJS=                         \
799         clock_timer.o           \
800         mqueue.o                \
801         pos4obj.o               \
802         sched.o                 \
803         sem.o                   \
804         shm.o                   \
805         sigev_thread.o
807 TPOOLOBJS=                      \
808         thread_pool.o
810 THREADSOBJS=                    \
811         alloc.o                 \
812         assfail.o               \
813         cancel.o                \
814         door_calls.o            \
815         pthr_attr.o             \
816         pthr_barrier.o          \
817         pthr_cond.o             \
818         pthr_mutex.o            \
819         pthr_rwlock.o           \
820         pthread.o               \
821         rwlock.o                \
822         scalls.o                \
823         sema.o                  \
824         sigaction.o             \
825         spawn.o                 \
826         synch.o                 \
827         tdb_agent.o             \
828         thr.o                   \
829         thread_interface.o      \
830         tls.o                   \
831         tsd.o
833 THREADSMACHOBJS=                \
834         machdep.o
836 THREADSASMOBJS=                 \
837         asm_subr.o
839 UNICODEOBJS=                    \
840         u8_textprep.o           \
841         uconv.o
843 UNWINDMACHOBJS=                 \
844         unwind.o
846 UNWINDASMOBJS=                  \
847         unwind_frame.o
849 # Preserved solely to ease maintenance of 32-bit and 64-bit library builds
850 # This macro should ALWAYS be empty; native APIs are already 'large file'.
851 PORTSYS64=
853 PORTSYS=                        \
854         _autofssys.o            \
855         access.o                \
856         acctctl.o               \
857         bsd_signal.o            \
858         chown.o                 \
859         corectl.o               \
860         exacctsys.o             \
861         execl.o                 \
862         execle.o                \
863         execv.o                 \
864         fcntl.o                 \
865         getpagesizes.o          \
866         getpeerucred.o          \
867         inst_sync.o             \
868         issetugid.o             \
869         label.o                 \
870         libc_link.o             \
871         lockf.o                 \
872         lwp.o                   \
873         lwp_cond.o              \
874         lwp_rwlock.o            \
875         lwp_sigmask.o           \
876         meminfosys.o            \
877         msgsys.o                \
878         nfssys.o                \
879         open.o                  \
880         pgrpsys.o               \
881         posix_sigwait.o         \
882         ppriv.o                 \
883         psetsys.o               \
884         rctlsys.o               \
885         rename.o                \
886         sbrk.o                  \
887         semsys.o                \
888         set_errno.o             \
889         sharefs.o               \
890         shmsys.o                \
891         sidsys.o                \
892         siginterrupt.o          \
893         signal.o                \
894         sigpending.o            \
895         sigstack.o              \
896         stat.o                  \
897         tasksys.o               \
898         time.o                  \
899         time_util.o             \
900         ucontext.o              \
901         unlink.o                \
902         ustat.o                 \
903         utimesys.o              \
904         zone.o
906 PORTREGEX=                      \
907         glob.o                  \
908         regcmp.o                \
909         regex.o                 \
910         wordexp.o
912 VALUES= values-Xa.o
914 MOSTOBJS=                       \
915         $(STRETS)               \
916         $(CRTOBJS)              \
917         $(DYNOBJS)              \
918         $(FPOBJS)               \
919         $(FPOBJS64)             \
920         $(FPASMOBJS)            \
921         $(ATOMICOBJS)           \
922         $(XATTROBJS)            \
923         $(COMOBJS)              \
924         $(GENOBJS)              \
925         $(PRFOBJS)              \
926         $(PORTFP)               \
927         $(PORTGEN)              \
928         $(PORTGEN64)            \
929         $(PORTI18N)             \
930         $(PORTI18N_COND)        \
931         $(PORTLOCALE)           \
932         $(PORTPRINT)            \
933         $(PORTPRINT_W)          \
934         $(PORTREGEX)            \
935         $(PORTSTDIO)            \
936         $(PORTSTDIO64)          \
937         $(PORTSTDIO_W)          \
938         $(PORTSYS)              \
939         $(PORTSYS64)            \
940         $(AIOOBJS)              \
941         $(RTOBJS)               \
942         $(TPOOLOBJS)            \
943         $(THREADSOBJS)          \
944         $(THREADSMACHOBJS)      \
945         $(THREADSASMOBJS)       \
946         $(UNICODEOBJS)          \
947         $(UNWINDMACHOBJS)       \
948         $(UNWINDASMOBJS)        \
949         $(COMSYSOBJS)           \
950         $(SYSOBJS)              \
951         $(COMSYSOBJS64)         \
952         $(SYSOBJS64)            \
953         $(VALUES)
955 TRACEOBJS=                      \
956         plockstat.o
958 # NOTE: libc.so.1 must be linked with the minimal crti.o and crtn.o
959 # modules whose source is provided in the $(SRC)/lib/common directory.
960 # This must be done because otherwise the Sun C compiler would insert
961 # its own versions of these modules and those versions contain code
962 # to call out to C++ initialization functions.  Such C++ initialization
963 # functions can call back into libc before thread initialization is
964 # complete and this leads to segmentation violations and other problems.
965 # Since libc contains no C++ code, linking with the minimal crti.o and
966 # crtn.o modules is safe and avoids the problems described above.
967 OBJECTS= $(CRTI) $(MOSTOBJS) $(CRTN)
968 CRTSRCS= ../../common/sparcv9
970 # include common library definitions
971 include $(SRC)/lib/Makefile.lib
972 include $(SRC)/lib/Makefile.lib.64
974 # NOTE: libc_i18n.a will be part of libc.so.1.  Therefore, the compilation
975 # conditions such as the settings of CFLAGS and CPPFLAGS for the libc_i18n stuff
976 # need to be compatible with the ones for the libc stuff.  Whenever the changes
977 # that affect the compilation conditions of libc happened, those for libc_i18n
978 # also need to be updated.
980 # we need to override the default SONAME here because we might
981 # be building a variant object (still libc.so.1, but different filename)
982 SONAME = libc.so.1
984 CFLAGS64 += $(CCVERBOSE)
986 # This is necessary to avoid problems with calling _ex_unwind().
987 # We probably don't want any inlining anyway.
988 CFLAGS64 += -xinline=
990 # Setting THREAD_DEBUG = -DTHREAD_DEBUG (make THREAD_DEBUG=-DTHREAD_DEBUG ...)
991 # enables ASSERT() checking in the threads portion of the library.
992 # This is automatically enabled for DEBUG builds, not for non-debug builds.
993 THREAD_DEBUG =
994 $(NOT_RELEASE_BUILD)THREAD_DEBUG = -DTHREAD_DEBUG
996 # Make string literals read-only to save memory.
997 CFLAGS64 += $(XSTRCONST)
999 ALTPICS= $(TRACEOBJS:%=pics/%)
1001 $(DYNLIB) := PICS += $(ROOTFS_LIBDIR64)/libc_i18n.a
1002 $(DYNLIB) := BUILD.SO = $(LD) -o $@ -G $(DYNFLAGS) $(PICS) $(ALTPICS) $(EXTPICS)
1004 MAPFILES =      $(LIBCDIR)/port/mapfile-vers
1006 sparcv9_C_PICFLAGS= -K PIC
1007 CFLAGS64 +=     $(EXTN_CFLAGS)
1008 CPPFLAGS=       -D_REENTRANT -Dsparc $(EXTN_CPPFLAGS) $(THREAD_DEBUG) \
1009                 -I$(LIBCBASE)/inc -I$(LIBCDIR)/inc $(CPPFLAGS.master)
1010 ASFLAGS=        $(EXTN_ASFLAGS) -K PIC -P -D__STDC__ -D_ASM -D__sparcv9 $(CPPFLAGS) \
1011                 $(sparcv9_AS_XARCH)
1013 # As a favor to the dtrace syscall provider, libc still calls the
1014 # old syscall traps that have been obsoleted by the *at() interfaces.
1015 # Delete this to compile libc using only the new *at() system call traps
1016 CPPFLAGS += -D_RETAIN_OLD_SYSCALLS
1018 # Inform the run-time linker about libc specialized initialization
1019 RTLDINFO =      -z rtldinfo=tls_rtldinfo
1020 DYNFLAGS +=     $(RTLDINFO)
1022 # Force libc's internal references to be resolved immediately upon loading
1023 # in order to avoid critical region problems.  Since almost all libc symbols
1024 # are marked 'protected' in the mapfiles, this is a minimal set (15 to 20).
1025 DYNFLAGS +=     -znow
1027 DYNFLAGS +=     $(EXTN_DYNFLAGS)
1029 BUILD.s=        $(AS) $(ASFLAGS) $< -o $@
1031 # Override this top level flag so the compiler builds in its native
1032 # C99 mode.  This has been enabled to support the complex arithmetic
1033 # added to libc.
1034 C99MODE=        $(C99_ENABLE)
1036 # libc method of building an archive
1037 BUILD.AR= $(RM) $@ ; \
1038         $(AR) q $@ `$(LORDER) $(MOSTOBJS:%=$(DIR)/%)| $(TSORT)`
1040 # extra files for the clean target
1041 CLEANFILES=                     \
1042         $(LIBCDIR)/port/gen/errlst.c    \
1043         $(LIBCDIR)/port/gen/new_list.c  \
1044         assym.h                 \
1045         genassym                \
1046         pics/crti.o             \
1047         pics/crtn.o             \
1048         $(ALTPICS)
1050 CLOBBERFILES += $(LIB_PIC)
1052 # list of C source for lint
1053 SRCS=                                                   \
1054         $(ATOMICOBJS:%.o=$(SRC)/common/atomic/%.c)      \
1055         $(XATTROBJS:%.o=$(SRC)/common/xattr/%.c)        \
1056         $(COMOBJS:%.o=$(SRC)/common/util/%.c)           \
1057         $(PORTFP:%.o=$(LIBCDIR)/port/fp/%.c)                    \
1058         $(PORTGEN:%.o=$(LIBCDIR)/port/gen/%.c)                  \
1059         $(PORTI18N:%.o=$(LIBCDIR)/port/i18n/%.c)                \
1060         $(PORTLOCALE:%.o=$(LIBCDIR)/port/locale/%.c)            \
1061         $(PORTPRINT:%.o=$(LIBCDIR)/port/print/%.c)              \
1062         $(PORTREGEX:%.o=$(LIBCDIR)/port/regex/%.c)              \
1063         $(PORTSTDIO:%.o=$(LIBCDIR)/port/stdio/%.c)              \
1064         $(PORTSYS:%.o=$(LIBCDIR)/port/sys/%.c)                  \
1065         $(AIOOBJS:%.o=$(LIBCDIR)/port/aio/%.c)                  \
1066         $(RTOBJS:%.o=$(LIBCDIR)/port/rt/%.c)                    \
1067         $(TPOOLOBJS:%.o=$(LIBCDIR)/port/tpool/%.c)              \
1068         $(THREADSOBJS:%.o=$(LIBCDIR)/port/threads/%.c)          \
1069         $(THREADSMACHOBJS:%.o=$(LIBCDIR)/$(MACH)/threads/%.c)   \
1070         $(UNICODEOBJS:%.o=$(SRC)/common/unicode/%.c)    \
1071         $(UNWINDMACHOBJS:%.o=$(LIBCDIR)/port/unwind/%.c)        \
1072         $(FPOBJS:%.o=$(LIBCDIR)/$(MACH)/fp/%.c)                 \
1073         $(FPOBJS64:%.o=$(LIBCBASE)/fp/%.c)              \
1074         $(LIBCBASE)/crt/_ftou.c                         \
1075         $(LIBCBASE)/gen/_xregs_clrptr.c                 \
1076         $(LIBCBASE)/gen/byteorder.c                     \
1077         $(LIBCBASE)/gen/ecvt.c                          \
1078         $(LIBCBASE)/gen/getctxt.c                       \
1079         $(LIBCBASE)/gen/makectxt.c                      \
1080         $(LIBCBASE)/gen/siginfolst.c                    \
1081         $(LIBCBASE)/gen/siglongjmp.c                    \
1082         $(LIBCBASE)/gen/swapctxt.c
1084 # conditional assignments
1085 $(DYNLIB) := CRTI = crti.o
1086 $(DYNLIB) := CRTN = crtn.o
1088 # Files which need the threads .il inline template
1089 TIL=                            \
1090         aio.o                   \
1091         alloc.o                 \
1092         assfail.o               \
1093         atexit.o                \
1094         atfork.o                \
1095         cancel.o                \
1096         door_calls.o            \
1097         errno.o                 \
1098         getctxt.o               \
1099         lwp.o                   \
1100         ma.o                    \
1101         machdep.o               \
1102         posix_aio.o             \
1103         pthr_attr.o             \
1104         pthr_barrier.o          \
1105         pthr_cond.o             \
1106         pthr_mutex.o            \
1107         pthr_rwlock.o           \
1108         pthread.o               \
1109         rand.o                  \
1110         rwlock.o                \
1111         scalls.o                \
1112         sched.o                 \
1113         sema.o                  \
1114         sigaction.o             \
1115         sigev_thread.o          \
1116         spawn.o                 \
1117         stack.o                 \
1118         swapctxt.o              \
1119         synch.o                 \
1120         tdb_agent.o             \
1121         thr.o                   \
1122         thread_interface.o      \
1123         thread_pool.o           \
1124         tls.o                   \
1125         tsd.o                   \
1126         unwind.o
1128 $(TIL:%=pics/%) := CFLAGS64 += $(LIBCBASE)/threads/sparcv9.il
1130 # Files in fp, port/fp subdirectories that need base.il inline template
1131 IL=                             \
1132         __flt_decim.o           \
1133         decimal_bin.o
1135 $(IL:%=pics/%) := CFLAGS64 += $(LIBCBASE)/fp/base.il
1137 # Files in fp subdirectory which need __quad.il inline template
1138 QIL=                            \
1139         _Q_add.o                \
1140         _Q_cmp.o                \
1141         _Q_cmpe.o               \
1142         _Q_div.o                \
1143         _Q_dtoq.o               \
1144         _Q_fcc.o                \
1145         _Q_mul.o                \
1146         _Q_qtod.o               \
1147         _Q_qtoi.o               \
1148         _Q_qtos.o               \
1149         _Q_qtou.o               \
1150         _Q_sqrt.o               \
1151         _Q_stoq.o               \
1152         _Q_sub.o                \
1153         _Qp_qtox.o              \
1154         _Qp_qtoux.o
1156 $(QIL:%=pics/%) := CFLAGS64 += $(LIBCDIR)/$(MACH)/fp/__quad.il
1157 pics/_Qp%.o := CFLAGS64 += -I$(LIBCDIR)/$(MACH)/fp
1158 pics/_Q%.o := sparcv9_COPTFLAG = -xO4 -xchip=ultra
1160 # Files in crt subdirectory which need muldiv64.il inline template
1161 #CIL=   mul64.o divrem64.o
1162 #$(CIL:%=pics/%) := CFLAGS += $(LIBCBASE)/crt/mul64.il
1164 # large-file-aware components that should be built large
1166 #$(COMSYSOBJS64:%=pics/%) := \
1167 #       CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1169 #$(SYSOBJS64:%=pics/%) := \
1170 #       CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1172 #$(PORTGEN64:%=pics/%) := \
1173 #       CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1175 #$(PORTSTDIO64:%=pics/%) := \
1176 #       CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1178 #$(PORTSYS64:%=pics/%) := \
1179 #       CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1181 $(PORTSTDIO_W:%=pics/%) := \
1182         CPPFLAGS += -D_WIDE
1184 $(PORTPRINT_W:%=pics/%) := \
1185         CPPFLAGS += -D_WIDE
1187 $(PORTI18N_COND:%=pics/%) := \
1188         CPPFLAGS += -D_WCS_LONGLONG
1190 # Files which need extra optimization
1191 pics/getenv.o := sparcv9_COPTFLAG = -xO4
1193 .KEEP_STATE:
1195 all: $(LIBS) $(LIB_PIC)
1197 lint    :=      CPPFLAGS += -I$(LIBCDIR)/$(MACH)/fp
1198 lint    :=      CPPFLAGS += -D_MSE_INT_H -D_LCONV_C99
1199 lint    :=      LINTFLAGS64 += -mn
1201 lint:
1202         @echo $(LINT.c) ... $(LDLIBS)
1203         @$(LINT.c) $(SRCS) $(LDLIBS)
1205 $(LINTLIB):= SRCS=$(LIBCDIR)/port/llib-lc
1206 $(LINTLIB):= CPPFLAGS += -D_MSE_INT_H
1207 $(LINTLIB):= LINTFLAGS64=-nvx -m64
1209 # object files that depend on inline template
1210 $(TIL:%=pics/%): $(LIBCBASE)/threads/sparcv9.il
1211 $(IL:%=pics/%): $(LIBCBASE)/fp/base.il
1212 $(QIL:%=pics/%): $(LIBCDIR)/$(MACH)/fp/__quad.il
1213 #$(CIL:%=pics/%): $(LIBCBASE)/crt/muldiv64.il
1215 # include common libc targets
1216 include $(LIBCDIR)/Makefile.targ
1218 # We need to strip out all CTF and DOF data from the static library
1219 $(LIB_PIC) := DIR = pics
1220 $(LIB_PIC): pics $$(PICS)
1221         $(BUILD.AR)
1222         $(MCS) -d -n .SUNW_ctf $@ > /dev/null 2>&1
1223         $(MCS) -d -n .SUNW_dof $@ > /dev/null 2>&1
1224         $(AR) -ts $@ > /dev/null
1225         $(POST_PROCESS_A)
1227 # special cases
1228 #$(STRETS:%=pics/%): crt/stret.s
1229 #       $(AS) $(ASFLAGS) -DSTRET$(@F:stret%.o=%) crt/stret.s -o $@
1230 #       $(POST_PROCESS_O)
1232 #crt/_rtbootld.s:       crt/_rtboot.s crt/_rtld.c
1233 #       $(CC) $(CPPFLAGS) -O -S -K pic crt/_rtld.c -o crt/_rtld.s
1234 #       $(CAT) crt/_rtboot.s crt/_rtld.s > $@
1235 #       $(RM) crt/_rtld.s
1237 ASSYMDEP_OBJS=                  \
1238         _lwp_mutex_unlock.o     \
1239         _stack_grow.o           \
1240         asm_subr.o              \
1241         setjmp.o                \
1242         tls_get_addr.o          \
1243         unwind_frame.o          \
1244         vforkx.o
1246 $(ASSYMDEP_OBJS:%=pics/%)       :=      CPPFLAGS += -I.
1248 $(ASSYMDEP_OBJS:%=pics/%): assym.h
1250 # assym.h build rules
1252 GENASSYM_C = $(LIBCDIR)/$(MACH)/genassym.c
1254 # XXX   A hack.  Perhaps this should be 'CPPFLAGS.native' and
1255 #       live in Makefile.master
1257 CPPFLAGS.genassym = \
1258         $(ENVCPPFLAGS1) $(ENVCPPFLAGS2) $(ENVCPPFLAGS3) $(ENVCPPFLAGS4)
1260 genassym: $(GENASSYM_C)
1261         $(NATIVECC) -I$(LIBCBASE)/inc -I$(LIBCDIR)/inc \
1262                 $(CPPFLAGS.genassym) -o $@ $(GENASSYM_C)
1264 OFFSETS = $(LIBCDIR)/$(MACH)/offsets.in
1266 assym.h: $(OFFSETS) genassym
1267         $(OFFSETS_CREATE) <$(OFFSETS) >$@
1268         ./genassym >>$@
1270 # derived C source and related explicit dependencies
1271 $(LIBCDIR)/port/gen/new_list.c: $(LIBCDIR)/port/gen/errlist $(LIBCDIR)/port/gen/errlist.awk
1272         cd $(LIBCDIR)/port/gen; pwd; $(AWK) -f errlist.awk < errlist
1274 pics/new_list.o: $(LIBCDIR)/port/gen/new_list.c