libc: nuke getpw()
[unleashed.git] / usr / src / lib / libc / i386 / Makefile.com
blob5e9cf8faa63b1d65bfcde82fd0a422df49babec7
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
22 # Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
23 # Copyright 2016 Joyent, Inc.
24 # Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
25 # Copyright 2013 Garrett D'Amore <garrett@damore.org>
27 # Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
28 # Use is subject to license terms.
31 LIBCDIR=        $(SRC)/lib/libc
32 LIB_PIC=        libc_pic.a
33 VERS=           .1
34 TARGET_ARCH=    i386
36 # include comm page definitions
37 include $(SRC)/lib/commpage/Makefile.shared.com
38 include $(SRC)/lib/commpage/Makefile.shared.targ
40 VALUES=         values-Xa.o
42 # objects are grouped by source directory
44 # Symbol capabilities objects
45 EXTPICS=        \
46         $(LIBCDIR)/capabilities/i386-sse/i386/pics/symcap.o \
47         $(LIBCDIR)/capabilities/i386-sse2/i386/pics/symcap.o
49 # local objects
50 STRETS=
52 CRTOBJS=                        \
53         cerror.o                \
54         cerror64.o
56 DYNOBJS=                        \
57         _rtbootld.o
59 FPOBJS=                         \
60         _D_cplx_div.o           \
61         _D_cplx_div_ix.o        \
62         _D_cplx_div_rx.o        \
63         _D_cplx_lr_div.o        \
64         _D_cplx_lr_div_ix.o     \
65         _D_cplx_lr_div_rx.o     \
66         _D_cplx_mul.o           \
67         _F_cplx_div.o           \
68         _F_cplx_div_ix.o        \
69         _F_cplx_div_rx.o        \
70         _F_cplx_lr_div.o        \
71         _F_cplx_lr_div_ix.o     \
72         _F_cplx_lr_div_rx.o     \
73         _F_cplx_mul.o           \
74         _X_cplx_div.o           \
75         _X_cplx_div_ix.o        \
76         _X_cplx_div_rx.o        \
77         _X_cplx_lr_div.o        \
78         _X_cplx_lr_div_ix.o     \
79         _X_cplx_lr_div_rx.o     \
80         _X_cplx_mul.o           \
81         fpgetmask.o             \
82         fpgetround.o            \
83         fpgetsticky.o           \
84         fpsetmask.o             \
85         fpsetround.o            \
86         fpsetsticky.o           \
87         fpstart.o               \
88         ieee.o
90 FPASMOBJS=                      \
91         __xgetRD.o              \
92         _base_il.o              \
93         _xtoll.o                \
94         _xtoull.o               \
95         fpcw.o
97 ATOMICOBJS=                     \
98         atomic.o
100 CHACHAOBJS=                     \
101         chacha.o
103 XATTROBJS=                      \
104         xattr_common.o
106 COMOBJS=                        \
107         bcmp.o                  \
108         bcopy.o                 \
109         bsearch.o               \
110         bzero.o                 \
111         qsort.o                 \
112         strtol.o                \
113         strtoul.o               \
114         strtoll.o               \
115         strtoull.o
117 DTRACEOBJS=                     \
118         dtrace_data.o
120 SECFLAGSOBJS=                   \
121         secflags.o
123 GENOBJS=                        \
124         $(COMMPAGE_OBJS)        \
125         _div64.o                \
126         _divdi3.o               \
127         _getsp.o                \
128         _mul64.o                \
129         abs.o                   \
130         alloca.o                \
131         arc4random.o            \
132         arc4random_uniform.o    \
133         byteorder.o             \
134         byteorder64.o           \
135         cuexit.o                \
136         ecvt.o                  \
137         endian.o                \
138         errlst.o                \
139         fts.o                   \
140         freezero.o              \
141         i386_data.o             \
142         ladd.o                  \
143         ldivide.o               \
144         lmul.o                  \
145         lock.o                  \
146         lshiftl.o               \
147         lsign.o                 \
148         lsub.o                  \
149         makectxt.o              \
150         memccpy.o               \
151         memchr.o                \
152         memcmp.o                \
153         memcpy.o                \
154         memset.o                \
155         new_list.o              \
156         reallocarray.o          \
157         recallocarray.o         \
158         setjmp.o                \
159         siginfolst.o            \
160         siglongjmp.o            \
161         strcat.o                \
162         strchr.o                \
163         strcmp.o                \
164         strcpy.o                \
165         strlen.o                \
166         strncat.o               \
167         strncmp.o               \
168         strncpy.o               \
169         strnlen.o               \
170         strrchr.o               \
171         sync_instruction_memory.o\
172         unvis.o                 \
173         vis.o
175 # sysobjs that contain large-file interfaces
176 COMSYSOBJS64=                   \
177         fstatvfs64.o            \
178         getdents64.o            \
179         getrlimit64.o           \
180         lseek64.o               \
181         mmap64.o                \
182         pread64.o               \
183         preadv64.o              \
184         pwrite64.o              \
185         pwritev64.o             \
186         setrlimit64.o           \
187         statvfs64.o
189 SYSOBJS64=
191 COMSYSOBJS=                     \
192         __clock_timer.o         \
193         __getloadavg.o          \
194         __rusagesys.o           \
195         __signotify.o           \
196         __sigrt.o               \
197         __time.o                \
198         _lgrp_home_fast.o       \
199         _lgrpsys.o              \
200         _nfssys.o               \
201         _portfs.o               \
202         _pset.o                 \
203         _rpcsys.o               \
204         _sigaction.o            \
205         _so_accept.o            \
206         _so_bind.o              \
207         _so_connect.o           \
208         _so_getpeername.o       \
209         _so_getsockname.o       \
210         _so_getsockopt.o        \
211         _so_listen.o            \
212         _so_recv.o              \
213         _so_recvfrom.o          \
214         _so_recvmsg.o           \
215         _so_send.o              \
216         _so_sendmsg.o           \
217         _so_sendto.o            \
218         _so_setsockopt.o        \
219         _so_shutdown.o          \
220         _so_socket.o            \
221         _so_socketpair.o        \
222         _sockconfig.o           \
223         acct.o                  \
224         acl.o                   \
225         adjtime.o               \
226         alarm.o                 \
227         brk.o                   \
228         chdir.o                 \
229         chroot.o                \
230         close.o                 \
231         execve.o                \
232         exit.o                  \
233         facl.o                  \
234         fchdir.o                \
235         fchroot.o               \
236         fdsync.o                \
237         fpathconf.o             \
238         fstatfs.o               \
239         fstatvfs.o              \
240         getcpuid.o              \
241         getdents.o              \
242         getegid.o               \
243         geteuid.o               \
244         getgid.o                \
245         getgroups.o             \
246         gethrtime.o             \
247         getitimer.o             \
248         getmsg.o                \
249         getpid.o                \
250         getpmsg.o               \
251         getppid.o               \
252         getrandom.o             \
253         getrlimit.o             \
254         getuid.o                \
255         gtty.o                  \
256         install_utrap.o         \
257         ioctl.o                 \
258         kaio.o                  \
259         kill.o                  \
260         llseek.o                \
261         lseek.o                 \
262         mmapobjsys.o            \
263         memcntl.o               \
264         mincore.o               \
265         mmap.o                  \
266         modctl.o                \
267         mount.o                 \
268         mprotect.o              \
269         munmap.o                \
270         nice.o                  \
271         ntp_adjtime.o           \
272         ntp_gettime.o           \
273         p_online.o              \
274         pathconf.o              \
275         pause.o                 \
276         pcsample.o              \
277         pipe2.o                 \
278         pollsys.o               \
279         pread.o                 \
280         preadv.o                \
281         priocntlset.o           \
282         processor_bind.o        \
283         processor_info.o        \
284         profil.o                \
285         psecflagsset.o          \
286         putmsg.o                \
287         putpmsg.o               \
288         pwrite.o                \
289         pwritev.o               \
290         read.o                  \
291         readv.o                 \
292         resolvepath.o           \
293         seteguid.o              \
294         setgid.o                \
295         setgroups.o             \
296         setitimer.o             \
297         setreid.o               \
298         setrlimit.o             \
299         setuid.o                \
300         sigaltstk.o             \
301         sigprocmsk.o            \
302         sigsendset.o            \
303         sigsuspend.o            \
304         statfs.o                \
305         statvfs.o               \
306         stty.o                  \
307         sync.o                  \
308         sysconfig.o             \
309         sysfs.o                 \
310         sysinfo.o               \
311         syslwp.o                \
312         times.o                 \
313         ulimit.o                \
314         umask.o                 \
315         umount2.o               \
316         uname.o                 \
317         utssys.o                \
318         uucopy.o                \
319         vhangup.o               \
320         waitid.o                \
321         write.o                 \
322         writev.o                \
323         yield.o
325 SYSOBJS=                        \
326         __clock_gettime.o       \
327         __clock_gettime_sys.o   \
328         __getcontext.o          \
329         __uadmin.o              \
330         _lwp_mutex_unlock.o     \
331         _stack_grow.o           \
332         door.o                  \
333         forkx.o                 \
334         forkallx.o              \
335         getcontext.o            \
336         gettimeofday.o          \
337         lwp_private.o           \
338         ptrace.o                \
339         syscall.o               \
340         sysi86.o                \
341         tls_get_addr.o          \
342         uadmin.o                \
343         umount.o                \
344         vforkx.o                \
345         xstat.o
347 # objects under $(LIBCDIR)/port which contain transitional large file interfaces
348 PORTGEN64=                      \
349         _xftw64.o               \
350         attropen64.o            \
351         ftw64.o                 \
352         mkstemp64.o             \
353         nftw64.o                \
354         tell64.o                \
355         truncate64.o
357 # objects from source under $(LIBCDIR)/port
358 PORTFP=                         \
359         __flt_decim.o           \
360         __flt_rounds.o          \
361         __tbl_10_b.o            \
362         __tbl_10_h.o            \
363         __tbl_10_s.o            \
364         __tbl_2_b.o             \
365         __tbl_2_h.o             \
366         __tbl_2_s.o             \
367         __tbl_fdq.o             \
368         __tbl_tens.o            \
369         __x_power.o             \
370         _base_sup.o             \
371         aconvert.o              \
372         decimal_bin.o           \
373         double_decim.o          \
374         econvert.o              \
375         fconvert.o              \
376         file_decim.o            \
377         finite.o                \
378         fp_data.o               \
379         func_decim.o            \
380         gconvert.o              \
381         hex_bin.o               \
382         ieee_globals.o          \
383         pack_float.o            \
384         sigfpe.o                \
385         string_decim.o
387 PORTGEN=                        \
388         _env_data.o             \
389         _xftw.o                 \
390         a64l.o                  \
391         abort.o                 \
392         addsev.o                \
393         ascii_strcasecmp.o      \
394         ascii_strncasecmp.o     \
395         assert.o                \
396         atof.o                  \
397         atoi.o                  \
398         atol.o                  \
399         atoll.o                 \
400         attrat.o                \
401         attropen.o              \
402         atexit.o                \
403         atfork.o                \
404         base64.o                \
405         basename.o              \
406         calloc.o                \
407         catgets.o               \
408         catopen.o               \
409         cfgetispeed.o           \
410         cfgetospeed.o           \
411         cfree.o                 \
412         cfsetispeed.o           \
413         cfsetospeed.o           \
414         cftime.o                \
415         clock.o                 \
416         closedir.o              \
417         closefrom.o             \
418         confstr.o               \
419         crypt.o                 \
420         csetlen.o               \
421         ctime.o                 \
422         daemon.o                \
423         deflt.o                 \
424         directio.o              \
425         dirname.o               \
426         div.o                   \
427         drand48.o               \
428         dup.o                   \
429         env_data.o              \
430         err.o                   \
431         errno.o                 \
432         euclen.o                \
433         event_port.o            \
434         execvp.o                \
435         explicit_bzero.o        \
436         fattach.o               \
437         fdetach.o               \
438         fdopendir.o             \
439         ffs.o                   \
440         flock.o                 \
441         fls.o                   \
442         fmtmsg.o                \
443         ftime.o                 \
444         ftok.o                  \
445         ftw.o                   \
446         gcvt.o                  \
447         getauxv.o               \
448         getcwd.o                \
449         getdate_err.o           \
450         getdtblsize.o           \
451         getentropy.o            \
452         getenv.o                \
453         getexecname.o           \
454         getgrnam.o              \
455         getgrnam_r.o            \
456         gethostid.o             \
457         gethostname.o           \
458         gethz.o                 \
459         getisax.o               \
460         getloadavg.o            \
461         getlogin.o              \
462         getmntent.o             \
463         getnetgrent.o           \
464         get_nprocs.o            \
465         getopt.o                \
466         getopt_long.o           \
467         getpagesize.o           \
468         getpwnam.o              \
469         getpwnam_r.o            \
470         getrusage.o             \
471         getspent.o              \
472         getspent_r.o            \
473         getsubopt.o             \
474         gettxt.o                \
475         getusershell.o          \
476         getut.o                 \
477         getutx.o                \
478         getvfsent.o             \
479         getwd.o                 \
480         getwidth.o              \
481         getxby_door.o           \
482         gtxt.o                  \
483         hsearch.o               \
484         iconv.o                 \
485         imaxabs.o               \
486         imaxdiv.o               \
487         index.o                 \
488         initgroups.o            \
489         insque.o                \
490         isaexec.o               \
491         isastream.o             \
492         isatty.o                \
493         killpg.o                \
494         klpdlib.o               \
495         l64a.o                  \
496         lckpwdf.o               \
497         lconstants.o            \
498         lexp10.o                \
499         lfind.o                 \
500         lfmt.o                  \
501         lfmt_log.o              \
502         llabs.o                 \
503         lldiv.o                 \
504         llog10.o                \
505         lltostr.o               \
506         localtime.o             \
507         lsearch.o               \
508         madvise.o               \
509         malloc.o                \
510         memalign.o              \
511         memmem.o                \
512         mkdev.o                 \
513         mkdtemp.o               \
514         mkfifo.o                \
515         mkstemp.o               \
516         mktemp.o                \
517         mlock.o                 \
518         mlockall.o              \
519         mon.o                   \
520         msync.o                 \
521         munlock.o               \
522         munlockall.o            \
523         ndbm.o                  \
524         nftw.o                  \
525         nlspath_checks.o        \
526         nsparse.o               \
527         nss_common.o            \
528         nss_dbdefs.o            \
529         nss_deffinder.o         \
530         opendir.o               \
531         opt_data.o              \
532         perror.o                \
533         pfmt.o                  \
534         pfmt_data.o             \
535         pfmt_print.o            \
536         pipe.o                  \
537         plock.o                 \
538         poll.o                  \
539         posix_fadvise.o         \
540         posix_fallocate.o       \
541         posix_madvise.o         \
542         posix_memalign.o        \
543         priocntl.o              \
544         privlib.o               \
545         priv_str_xlate.o        \
546         psecflags.o             \
547         psiginfo.o              \
548         psignal.o               \
549         pt.o                    \
550         putpwent.o              \
551         putspent.o              \
552         raise.o                 \
553         rand.o                  \
554         random.o                \
555         rctlops.o               \
556         readdir.o               \
557         readdir_r.o             \
558         realpath.o              \
559         reboot.o                \
560         regexpr.o               \
561         remove.o                \
562         rewinddir.o             \
563         rindex.o                \
564         scandir.o               \
565         seekdir.o               \
566         select.o                \
567         setlabel.o              \
568         setmode.o               \
569         setpriority.o           \
570         settimeofday.o          \
571         sh_locks.o              \
572         sigflag.o               \
573         siglist.o               \
574         sigsend.o               \
575         sigsetops.o             \
576         ssignal.o               \
577         stack.o                 \
578         stpcpy.o                \
579         stpncpy.o               \
580         str2sig.o               \
581         strcase_charmap.o       \
582         strchrnul.o             \
583         strcspn.o               \
584         strdup.o                \
585         strerror.o              \
586         strlcat.o               \
587         strlcpy.o               \
588         strndup.o               \
589         strpbrk.o               \
590         strsep.o                \
591         strsignal.o             \
592         strspn.o                \
593         strstr.o                \
594         strtod.o                \
595         strtoimax.o             \
596         strtok.o                \
597         strtok_r.o              \
598         strtonum.o              \
599         strtoumax.o             \
600         swab.o                  \
601         swapctl.o               \
602         sysconf.o               \
603         syslog.o                \
604         tcdrain.o               \
605         tcflow.o                \
606         tcflush.o               \
607         tcgetattr.o             \
608         tcgetpgrp.o             \
609         tcgetsid.o              \
610         tcsendbreak.o           \
611         tcsetattr.o             \
612         tcsetpgrp.o             \
613         tell.o                  \
614         telldir.o               \
615         tfind.o                 \
616         time_data.o             \
617         time_gdata.o            \
618         timespec_get.o          \
619         tls_data.o              \
620         truncate.o              \
621         tsdalloc.o              \
622         tsearch.o               \
623         ttyname.o               \
624         ttyslot.o               \
625         ualarm.o                \
626         ucred.o                 \
627         valloc.o                \
628         vlfmt.o                 \
629         vpfmt.o                 \
630         waitpid.o               \
631         walkstack.o             \
632         wdata.o                 \
633         xgetwidth.o             \
634         xpg4.o                  \
635         xpg6.o
637 PORTPRINT_W=                    \
638         doprnt_w.o
640 PORTPRINT=                      \
641         asprintf.o              \
642         doprnt.o                \
643         fprintf.o               \
644         printf.o                \
645         snprintf.o              \
646         sprintf.o               \
647         vfprintf.o              \
648         vprintf.o               \
649         vsnprintf.o             \
650         vsprintf.o              \
651         vwprintf.o              \
652         wprintf.o
654 # c89 variants to support 32-bit size of c89 u/intmax_t (32-bit libc only)
655 PORTPRINT_C89=                  \
656         vfprintf_c89.o          \
657         vprintf_c89.o           \
658         vsnprintf_c89.o         \
659         vsprintf_c89.o          \
660         vwprintf_c89.o
662 PORTSTDIO_C89=                  \
663         vscanf_c89.o            \
664         vwscanf_c89.o           \
666 # portable stdio objects that contain large file interfaces.
667 # Note: fopen64 is a special case, as we build it small.
668 PORTSTDIO64=                    \
669         fopen64.o               \
670         fpos64.o
672 PORTSTDIO_W=                    \
673         doscan_w.o
675 PORTSTDIO=                      \
676         __extensions.o          \
677         _endopen.o              \
678         _filbuf.o               \
679         _findbuf.o              \
680         _flsbuf.o               \
681         _wrtchk.o               \
682         clearerr.o              \
683         ctermid.o               \
684         ctermid_r.o             \
685         cuserid.o               \
686         data.o                  \
687         doscan.o                \
688         fdopen.o                \
689         feof.o                  \
690         ferror.o                \
691         fgetc.o                 \
692         fgets.o                 \
693         fileno.o                \
694         flockf.o                \
695         flush.o                 \
696         fopen.o                 \
697         fpos.o                  \
698         fputc.o                 \
699         fputs.o                 \
700         fread.o                 \
701         fseek.o                 \
702         fseeko.o                \
703         ftell.o                 \
704         ftello.o                \
705         fwrite.o                \
706         getc.o                  \
707         getchar.o               \
708         getline.o               \
709         getpass.o               \
710         gets.o                  \
711         getw.o                  \
712         mse.o                   \
713         popen.o                 \
714         putc.o                  \
715         putchar.o               \
716         puts.o                  \
717         putw.o                  \
718         rewind.o                \
719         scanf.o                 \
720         setbuf.o                \
721         setbuffer.o             \
722         setvbuf.o               \
723         system.o                \
724         tempnam.o               \
725         tmpfile.o               \
726         tmpnam_r.o              \
727         ungetc.o                \
728         vscanf.o                \
729         vwscanf.o               \
730         wscanf.o
732 PORTI18N=                       \
733         getwchar.o              \
734         putwchar.o              \
735         putws.o                 \
736         strtows.o               \
737         wcsnlen.o               \
738         wcsstr.o                \
739         wcstoimax.o             \
740         wcstol.o                \
741         wcstoul.o               \
742         wcswcs.o                \
743         wmemchr.o               \
744         wmemcmp.o               \
745         wmemcpy.o               \
746         wmemmove.o              \
747         wmemset.o               \
748         wscat.o                 \
749         wschr.o                 \
750         wscmp.o                 \
751         wscpy.o                 \
752         wscspn.o                \
753         wsdup.o                 \
754         wslen.o                 \
755         wsncat.o                \
756         wsncmp.o                \
757         wsncpy.o                \
758         wspbrk.o                \
759         wsprintf.o              \
760         wsrchr.o                \
761         wsscanf.o               \
762         wsspn.o                 \
763         wstod.o                 \
764         wstok.o                 \
765         wstol.o                 \
766         wstoll.o                \
767         wsxfrm.o                \
768         gettext.o               \
769         gettext_gnu.o           \
770         gettext_real.o          \
771         gettext_util.o          \
772         plural_parser.o         \
773         wdresolve.o             \
774         _ctype.o                \
775         isascii.o               \
776         toascii.o
778 PORTI18N_COND=                  \
779         wcstol_longlong.o       \
780         wcstoul_longlong.o
782 PORTINET= bindresvport.o bootparams_getbyname.o ether_addr.o \
783           getaddrinfo.o getnameinfo.o getnetent.o getnetent_r.o \
784           getprotoent.o getprotoent_r.o getservbyname_r.o getservent.o \
785           getservent_r.o inet_lnaof.o inet_mkaddr.o inet_network.o \
786           inet6_opt.o inet6_rthdr.o interface_id.o link_addr.o \
787           netmasks.o ruserpass.o sourcefilter.o \
788           getifaddrs.o
790 PORTLOCALE=                     \
791         big5.o                  \
792         btowc.o                 \
793         collate.o               \
794         collcmp.o               \
795         euc.o                   \
796         fnmatch.o               \
797         fgetwc.o                \
798         fgetws.o                \
799         fix_grouping.o          \
800         fputwc.o                \
801         fputws.o                \
802         fwide.o                 \
803         gb18030.o               \
804         gb2312.o                \
805         gbk.o                   \
806         getdate.o               \
807         isdigit.o               \
808         iswctype.o              \
809         ldpart.o                \
810         lmessages.o             \
811         lnumeric.o              \
812         lmonetary.o             \
813         localeconv.o            \
814         localeimpl.o            \
815         mbftowc.o               \
816         mblen.o                 \
817         mbrlen.o                \
818         mbrtowc.o               \
819         mbsinit.o               \
820         mbsnrtowcs.o            \
821         mbsrtowcs.o             \
822         mbstowcs.o              \
823         mbtowc.o                \
824         mskanji.o               \
825         nextwctype.o            \
826         nl_langinfo.o           \
827         none.o                  \
828         rune.o                  \
829         runetype.o              \
830         setlocale.o             \
831         setrunelocale.o         \
832         strcasecmp.o            \
833         strcasestr.o            \
834         strcoll.o               \
835         strfmon.o               \
836         strftime.o              \
837         strncasecmp.o           \
838         strptime.o              \
839         strxfrm.o               \
840         table.o                 \
841         timelocal.o             \
842         tolower.o               \
843         towlower.o              \
844         ungetwc.o               \
845         utf8.o                  \
846         wcrtomb.o               \
847         wcscasecmp.o            \
848         wcscoll.o               \
849         wcsftime.o              \
850         wcsnrtombs.o            \
851         wcsrtombs.o             \
852         wcswidth.o              \
853         wcstombs.o              \
854         wcsxfrm.o               \
855         wctob.o                 \
856         wctomb.o                \
857         wctrans.o               \
858         wctype.o                \
859         wcwidth.o               \
860         wscol.o
862 PORTNSL= _conn_util.o _data2.o _errlst.o _utility.o algs.o auth_des.o \
863          auth_none.o auth_sys.o auth_time.o authdes_prot.o authsys_prot.o \
864          can_use_af.o checkver.o clnt_bcast.o clnt_dg.o clnt_door.o \
865          clnt_generic.o clnt_perror.o clnt_raw.o clnt_simple.o clnt_vc.o \
866          daemon_utils.o dbm.o des_crypt.o des_soft.o doconfig.o getauthattr.o \
867          getauuser.o getdname.o getexecattr.o gethostby_door.o \
868          gethostbyname_r.o gethostent.o gethostent6.o gethostent_r.o \
869          getipnodeby.o getipnodeby_door.o getprofattr.o getrpcent.o \
870          getrpcent_r.o getuserattr.o inet_matchaddr.o inet_ntoa.o inet_ntop.o \
871          inet_pton.o key_call.o key_prot.o mt_misc.o netdir.o netdir_inet.o \
872          netdir_inet_sundry.o netname.o netnamer.o netselect.o nis_misc.o \
873          nis_misc_proc.o nis_sec_mechs.o nis_subr.o nis_xdr.o parse.o \
874          pmap_clnt.o pmap_prot.o publickey.o rpc_callmsg.o rpc_comdata.o \
875          rpc_fdsync.o rpc_generic.o rpc_prot.o rpc_sel2poll.o \
876          rpc_soc.o rpc_td.o rpcb_clnt.o rpcb_prot.o rpcb_st_xdr.o rpcdname.o \
877          rpcsec_gss_if.o rtime_tli.o svc.o svc_auth.o svc_auth_loopb.o \
878          svc_auth_sys.o svc_dg.o svc_door.o svc_generic.o svc_raw.o svc_run.o \
879          svc_simple.o svc_vc.o svcauth_des.o svid_funcs.o t_accept.o \
880          t_alloc.o t_bind.o t_close.o t_connect.o t_error.o t_free.o \
881          t_getinfo.o t_getname.o t_getstate.o t_listen.o t_look.o t_open.o \
882          t_optmgmt.o t_rcv.o t_rcvconnect.o t_rcvdis.o t_rcvrel.o \
883          t_rcvreldata.o t_rcvudata.o t_rcvuderr.o t_rcvv.o t_rcvvudata.o \
884          t_snd.o t_snddis.o t_sndrel.o t_sndreldata.o t_sndudata.o t_sndv.o \
885          t_sndvudata.o t_strerror.o t_sync.o t_sysconf.o t_unbind.o \
886          thr_get_storage.o ti_opts.o tli_wrappers.o xdr.o xdr_array.o \
887          xdr_float.o xdr_mem.o xdr_rec.o xdr_refer.o xdr_sizeof.o xdr_stdio.o \
888          xti_wrappers.o yp_all.o yp_b_clnt.o yp_b_xdr.o yp_bind.o yp_enum.o \
889          yp_master.o yp_match.o yp_order.o yp_rsvd.o yp_update.o yp_xdr.o \
890          yperr_string.o yppasswd_xdr.o ypprot_err.o ypupd.o
892 AIOOBJS=                        \
893         aio.o                   \
894         aio_alloc.o             \
895         posix_aio.o
897 RTOBJS=                         \
898         clock_timer.o           \
899         mqueue.o                \
900         pos4obj.o               \
901         sched.o                 \
902         sem.o                   \
903         shm.o                   \
904         sigev_thread.o
906 TPOOLOBJS=                      \
907         thread_pool.o
909 THREADSOBJS=                    \
910         alloc.o                 \
911         assfail.o               \
912         cancel.o                \
913         c11_thr.o               \
914         door_calls.o            \
915         tmem.o                  \
916         pthr_attr.o             \
917         pthr_barrier.o          \
918         pthr_cond.o             \
919         pthr_mutex.o            \
920         pthr_rwlock.o           \
921         pthread.o               \
922         rwlock.o                \
923         scalls.o                \
924         sema.o                  \
925         sigaction.o             \
926         spawn.o                 \
927         synch.o                 \
928         tdb_agent.o             \
929         thr.o                   \
930         thread_interface.o      \
931         tls.o                   \
932         tsd.o
934 THREADSMACHOBJS=                \
935         machdep.o
937 THREADSASMOBJS=                 \
938         asm_subr.o
940 UNICODEOBJS=                    \
941         u8_textprep.o           \
942         uconv.o
944 UNWINDMACHOBJS=                 \
945         unwind.o
947 UNWINDASMOBJS=                  \
948         unwind_frame.o
950 # objects that implement the transitional large file API
951 PORTSYS64=                      \
952         lockf64.o               \
953         stat64.o
955 PORTSYS=                        \
956         _autofssys.o            \
957         access.o                \
958         acctctl.o               \
959         bsd_signal.o            \
960         chmod.o                 \
961         chown.o                 \
962         corectl.o               \
963         epoll.o                 \
964         eventfd.o               \
965         exacctsys.o             \
966         execl.o                 \
967         execle.o                \
968         execv.o                 \
969         fcntl.o                 \
970         getpagesizes.o          \
971         getpeerucred.o          \
972         inst_sync.o             \
973         issetugid.o             \
974         link.o                  \
975         lockf.o                 \
976         lwp.o                   \
977         lwp_cond.o              \
978         lwp_rwlock.o            \
979         lwp_sigmask.o           \
980         meminfosys.o            \
981         mkdir.o                 \
982         mknod.o                 \
983         msgsys.o                \
984         nfssys.o                \
985         open.o                  \
986         pgrpsys.o               \
987         posix_sigwait.o         \
988         ppriv.o                 \
989         psetsys.o               \
990         rctlsys.o               \
991         readlink.o              \
992         rename.o                \
993         sbrk.o                  \
994         semsys.o                \
995         set_errno.o             \
996         sharefs.o               \
997         shmsys.o                \
998         sidsys.o                \
999         siginterrupt.o          \
1000         signal.o                \
1001         signalfd.o              \
1002         sigpending.o            \
1003         sigstack.o              \
1004         stat.o                  \
1005         symlink.o               \
1006         tasksys.o               \
1007         time.o                  \
1008         time_util.o             \
1009         timerfd.o               \
1010         ucontext.o              \
1011         unlink.o                \
1012         ustat.o                 \
1013         utimesys.o              \
1014         zone.o
1016 PORTREGEX=                      \
1017         glob.o                  \
1018         regcmp.o                \
1019         regcomp.o               \
1020         regerror.o              \
1021         regex.o                 \
1022         regexec.o               \
1023         regfree.o               \
1024         wordexp.o
1026 PORTREGEX64=                    \
1027         glob64.o
1029 PORTSOCKET= _soutil.o sockatmark.o socket.o socketpair.o weaks.o
1031 MOSTOBJS=                       \
1032         $(STRETS)               \
1033         $(CRTOBJS)              \
1034         $(DYNOBJS)              \
1035         $(FPOBJS)               \
1036         $(FPASMOBJS)            \
1037         $(ATOMICOBJS)           \
1038         $(CHACHAOBJS)           \
1039         $(XATTROBJS)            \
1040         $(COMOBJS)              \
1041         $(DTRACEOBJS)           \
1042         $(GENOBJS)              \
1043         $(PORTFP)               \
1044         $(PORTGEN)              \
1045         $(PORTGEN64)            \
1046         $(PORTI18N)             \
1047         $(PORTI18N_COND)        \
1048         $(PORTINET)             \
1049         $(PORTLOCALE)           \
1050         $(PORTNSL)              \
1051         $(PORTPRINT)            \
1052         $(PORTPRINT_C89)        \
1053         $(PORTPRINT_W)          \
1054         $(PORTREGEX)            \
1055         $(PORTREGEX64)          \
1056         $(PORTSOCKET)           \
1057         $(PORTSTDIO)            \
1058         $(PORTSTDIO64)          \
1059         $(PORTSTDIO_C89)        \
1060         $(PORTSTDIO_W)          \
1061         $(PORTSYS)              \
1062         $(PORTSYS64)            \
1063         $(AIOOBJS)              \
1064         $(RTOBJS)               \
1065         $(SECFLAGSOBJS)         \
1066         $(TPOOLOBJS)            \
1067         $(THREADSOBJS)          \
1068         $(THREADSMACHOBJS)      \
1069         $(THREADSASMOBJS)       \
1070         $(UNICODEOBJS)          \
1071         $(UNWINDMACHOBJS)       \
1072         $(UNWINDASMOBJS)        \
1073         $(COMSYSOBJS)           \
1074         $(SYSOBJS)              \
1075         $(COMSYSOBJS64)         \
1076         $(SYSOBJS64)            \
1077         $(VALUES)
1079 TRACEOBJS=                      \
1080         plockstat.o
1082 # NOTE: libc.so.1 must be linked with the minimal crti.o and crtn.o
1083 # modules whose source is provided in the $(SRC)/lib/crt directory.
1084 # This must be done because otherwise the Sun C compiler would insert
1085 # its own versions of these modules and those versions contain code
1086 # to call out to C++ initialization functions.  Such C++ initialization
1087 # functions can call back into libc before thread initialization is
1088 # complete and this leads to segmentation violations and other problems.
1089 # Since libc contains no C++ code, linking with the minimal crti.o and
1090 # crtn.o modules is safe and avoids the problems described above.
1091 OBJECTS= $(CRTI) $(MOSTOBJS) $(CRTN)
1092 CRTSRCS= ../../crt/i86
1094 LDPASS_OFF=     $(POUND_SIGN)
1096 # include common library definitions
1097 include ../../Makefile.lib
1099 # we need to override the default SONAME here because we might
1100 # be building a variant object (still libc.so.1, but different filename)
1101 SONAME = libc.so.1
1103 CFLAGS += $(CTF_FLAGS)
1105 CERRWARN += -Wno-parentheses
1106 CERRWARN += -Wno-switch
1107 CERRWARN += -Wno-uninitialized
1108 CERRWARN += -Wno-unused-value
1109 CERRWARN += -Wno-unused-label
1110 CERRWARN += -Wno-unused-variable
1111 CERRWARN += -Wno-type-limits
1112 CERRWARN += -Wno-char-subscripts
1113 CERRWARN += -Wno-clobbered
1114 CERRWARN += -Wno-unused-function
1115 CERRWARN += -Wno-address
1117 # Setting THREAD_DEBUG = -DTHREAD_DEBUG (make THREAD_DEBUG=-DTHREAD_DEBUG ...)
1118 # enables ASSERT() checking in the threads portion of the library.
1119 # This is automatically enabled for DEBUG builds, not for non-debug builds.
1120 THREAD_DEBUG =
1121 $(NOT_RELEASE_BUILD)THREAD_DEBUG = -DTHREAD_DEBUG
1123 ALTPICS= $(TRACEOBJS:%=pics/%)
1125 # The use of sed is a gross hack needed because the current build system
1126 # assumed that the compiler accepted linker flags (-Bfoo -zfoo and -Mfoo)
1127 # directly.  Here, since we're calling the linker directly, we have to
1128 # discard the prefixes.  Ideally, we would be using the LD_Z* and LD_B*
1129 # variables instead, but that would require a lot of mucking with makefiles.
1130 # So for now, we do this.
1131 REMOVE_GCC_PREFIX=echo $(DYNFLAGS) | $(SED) -e 's/-Wl,//g'
1132 $(DYNLIB) := BUILD.SO = $(LD) -o $@ -G $(REMOVE_GCC_PREFIX:sh) $(PICS) $(ALTPICS) \
1133                 $(EXTPICS) $(LDLIBS)
1135 MAPFILES =      $(LIBCDIR)/port/mapfile-vers
1138 # EXTN_CPPFLAGS and EXTN_CFLAGS set in enclosing Makefile
1140 CFLAGS +=       -march=pentiumpro
1141 CPPFLAGS=       -Di386 $(EXTN_CPPFLAGS) $(THREAD_DEBUG) \
1142                 -I$(LIBCBASE)/inc -I$(LIBCDIR)/inc $(CPPFLAGS.master)
1143 ASFLAGS=        $(AS_PICFLAGS) -D_ASM $(CPPFLAGS) $(i386_AS_XARCH)
1145 # Inform the run-time linker about libc specialized initialization
1146 RTLDINFO =      -z rtldinfo=tls_rtldinfo
1147 DYNFLAGS +=     $(RTLDINFO)
1149 # Force libc's internal references to be resolved immediately upon loading
1150 # in order to avoid critical region problems.  Since almost all libc symbols
1151 # are marked 'protected' in the mapfiles, this is a minimal set (15 to 20).
1152 DYNFLAGS +=     -znow
1154 DYNFLAGS +=     -e __rtboot
1155 DYNFLAGS +=     $(EXTN_DYNFLAGS)
1157 # Inform the kernel about the initial DTrace area (in case
1158 # libc is being used as the interpreter / runtime linker).
1159 DTRACE_DATA =   -zdtrace=dtrace_data
1160 DYNFLAGS +=     $(DTRACE_DATA)
1162 # DTrace needs an executable data segment.
1163 DYNFLAGS += -M$(SRC)/common/mapfiles/common/map.execdata
1165 BUILD.s=        $(AS) $(ASFLAGS) $< -o $@
1167 # Override this top level flag so the compiler builds in its native
1168 # C99 mode.  This has been enabled to support the complex arithmetic
1169 # added to libc.
1170 C99MODE=        $(C99_ENABLE)
1172 # libc method of building an archive
1173 # The "$(GREP) -v ' L '" part is necessary only until
1174 # lorder is fixed to ignore thread-local variables.
1175 BUILD.AR= $(RM) $@ ; \
1176         $(AR) qc $@ `$(LORDER) $(MOSTOBJS:%=$(DIR)/%) | $(GREP) -v ' L ' | $(TSORT)`
1178 # extra files for the clean target
1179 CLEANFILES +=                   \
1180         $(LIBCDIR)/port/gen/errlst.c    \
1181         $(LIBCDIR)/port/gen/new_list.c  \
1182         assym.h                 \
1183         genassym                \
1184         crt/_rtld.s             \
1185         crt/_rtbootld.s         \
1186         pics/_rtbootld.o        \
1187         pics/crti.o             \
1188         pics/crtn.o             \
1189         $(ALTPICS)
1191 CLOBBERFILES += $(LIB_PIC)
1193 # list of C source formerly for lint
1194 SRCS=                                                   \
1195         $(ATOMICOBJS:%.o=$(SRC)/common/atomic/%.c)      \
1196         $(XATTROBJS:%.o=$(SRC)/common/xattr/%.c)        \
1197         $(COMOBJS:%.o=$(SRC)/common/util/%.c)           \
1198         $(DTRACEOBJS:%.o=$(SRC)/common/dtrace/%.c)      \
1199         $(PORTFP:%.o=$(LIBCDIR)/port/fp/%.c)                    \
1200         $(PORTGEN:%.o=$(LIBCDIR)/port/gen/%.c)                  \
1201         $(PORTI18N:%.o=$(LIBCDIR)/port/i18n/%.c)                \
1202         $(PORTLOCALE:%.o=$(LIBCDIR)/port/locale/%.c)            \
1203         $(PORTPRINT:%.o=$(LIBCDIR)/port/print/%.c)              \
1204         $(PORTREGEX:%.o=$(LIBCDIR)/port/regex/%.c)              \
1205         $(PORTSTDIO:%.o=$(LIBCDIR)/port/stdio/%.c)              \
1206         $(PORTSYS:%.o=$(LIBCDIR)/port/sys/%.c)                  \
1207         $(AIOOBJS:%.o=$(LIBCDIR)/port/aio/%.c)                  \
1208         $(RTOBJS:%.o=$(LIBCDIR)/port/rt/%.c)                    \
1209         $(SECFLAGSOBJS:%.o=$(SRC)/common/secflags/%.c)          \
1210         $(TPOOLOBJS:%.o=$(LIBCDIR)/port/tpool/%.c)              \
1211         $(THREADSOBJS:%.o=$(LIBCDIR)/port/threads/%.c)          \
1212         $(THREADSMACHOBJS:%.o=$(LIBCDIR)/$(MACH)/threads/%.c)   \
1213         $(UNICODEOBJS:%.o=$(SRC)/common/unicode/%.c)    \
1214         $(UNWINDMACHOBJS:%.o=$(LIBCDIR)/port/unwind/%.c)        \
1215         $(FPOBJS:%.o=$(LIBCDIR)/$(MACH)/fp/%.c)                 \
1216         $(LIBCBASE)/gen/ecvt.c                          \
1217         $(LIBCBASE)/gen/makectxt.c                      \
1218         $(LIBCBASE)/gen/siginfolst.c                    \
1219         $(LIBCBASE)/gen/siglongjmp.c                    \
1220         $(LIBCBASE)/gen/strcmp.c                        \
1221         $(LIBCBASE)/gen/sync_instruction_memory.c       \
1222         $(LIBCBASE)/sys/ptrace.c                        \
1223         $(LIBCBASE)/sys/uadmin.c
1225 # conditional assignments
1226 $(DYNLIB) := CRTI = crti.o
1227 $(DYNLIB) := CRTN = crtn.o
1229 # large-file-aware components that should be built large
1231 $(COMSYSOBJS64:%=pics/%) := \
1232         CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1234 $(SYSOBJS64:%=pics/%) := \
1235         CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1237 $(PORTGEN64:%=pics/%) := \
1238         CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1240 $(PORTREGEX64:%=pics/%) := \
1241         CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1243 $(PORTSTDIO64:%=pics/%) := \
1244         CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1246 $(PORTSYS64:%=pics/%) := \
1247         CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1249 $(PORTSTDIO_W:%=pics/%) := \
1250         CPPFLAGS += -D_WIDE
1252 $(PORTPRINT_W:%=pics/%) := \
1253         CPPFLAGS += -D_WIDE
1255 $(PORTPRINT_C89:%=pics/%) := \
1256         CPPFLAGS += -D_C89_INTMAX32
1258 $(PORTSTDIO_C89:%=pics/%) := \
1259         CPPFLAGS += -D_C89_INTMAX32
1261 $(PORTI18N_COND:%=pics/%) := \
1262         CPPFLAGS += -D_WCS_LONGLONG
1264 pics/arc4random.o :=    CPPFLAGS += -I$(SRC)/common/crypto/chacha
1266 pics/__clock_gettime.o := CPPFLAGS += $(COMMPAGE_CPPFLAGS)
1268 .KEEP_STATE:
1270 all: $(LIBS) $(LIB_PIC)
1272 # include common libc targets
1273 include $(LIBCDIR)/Makefile.targ
1275 # We need to strip out all CTF and DOF data from the static library
1276 $(LIB_PIC) := DIR = pics
1277 $(LIB_PIC): pics $$(PICS)
1278         $(BUILD.AR)
1279         $(MCS) -d -n .SUNW_ctf $@ > /dev/null 2>&1
1280         $(MCS) -d -n .SUNW_dof $@ > /dev/null 2>&1
1281         $(AR) -ts $@ > /dev/null
1282         $(POST_PROCESS_A)
1284 $(LIBCBASE)/crt/_rtbootld.s: $(LIBCBASE)/crt/_rtboot.s $(LIBCBASE)/crt/_rtld.c
1285         $(CC) $(CPPFLAGS) $(CTF_FLAGS) -O -S $(C_PICFLAGS) \
1286             $(LIBCBASE)/crt/_rtld.c -o $(LIBCBASE)/crt/_rtld.s
1287         $(CAT) $(LIBCBASE)/crt/_rtboot.s $(LIBCBASE)/crt/_rtld.s > $@
1288         $(RM) $(LIBCBASE)/crt/_rtld.s
1290 # partially built from C source
1291 pics/_rtbootld.o: $(LIBCBASE)/crt/_rtbootld.s
1292         $(AS) $(ASFLAGS) $(LIBCBASE)/crt/_rtbootld.s -o $@
1293         $(CTFCONVERT_O)
1295 ASSYMDEP_OBJS=                  \
1296         _lwp_mutex_unlock.o     \
1297         _stack_grow.o           \
1298         getcontext.o            \
1299         setjmp.o                \
1300         tls_get_addr.o          \
1301         vforkx.o
1303 $(ASSYMDEP_OBJS:%=pics/%)       :=      CPPFLAGS += -I.
1305 $(ASSYMDEP_OBJS:%=pics/%): assym.h
1307 # assym.h build rules
1309 GENASSYM_C = $(LIBCDIR)/$(MACH)/genassym.c
1311 genassym: $(GENASSYM_C)
1312         $(NATIVECC) $(NATIVE_CFLAGS) -I$(LIBCBASE)/inc -I$(LIBCDIR)/inc \
1313                 -D__EXTENSIONS__ $(CPPFLAGS.native) -o $@ $(GENASSYM_C)
1315 OFFSETS = $(LIBCDIR)/$(MACH)/offsets.in
1317 assym.h: $(OFFSETS) genassym
1318         $(OFFSETS_CREATE) <$(OFFSETS) >$@
1319         ./genassym >>$@
1321 # derived C source and related explicit dependencies
1322 $(LIBCDIR)/port/gen/errlst.c + \
1323 $(LIBCDIR)/port/gen/new_list.c: $(LIBCDIR)/port/gen/errlist $(LIBCDIR)/port/gen/errlist.awk
1324         cd $(LIBCDIR)/port/gen; pwd; $(AWK) -f errlist.awk < errlist
1326 pics/errlst.o: $(LIBCDIR)/port/gen/errlst.c
1328 pics/new_list.o: $(LIBCDIR)/port/gen/new_list.c