17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 #
  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>
  26 #
  27 # Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  28 # Use is subject to license terms.
  29 #
  30 
  31 LIBCDIR=        $(SRC)/lib/libc
  32 LIB_PIC=        libc_pic.a
  33 VERS=           .1
  34 CPP=            /usr/lib/cpp
  35 TARGET_ARCH=    i386
  36 
  37 VALUES=         values-Xa.o
  38 
  39 # objects are grouped by source directory
  40 
  41 # local objects
  42 STRETS=
  43 
  44 CRTOBJS=                        \
  45         cerror.o                \
  46         cerror64.o
  47 
  48 DYNOBJS=                        \
  49         _rtbootld.o
  50 
  51 FPOBJS=                         \
  52         _D_cplx_div.o           \
  53         _D_cplx_div_ix.o        \
  54         _D_cplx_div_rx.o        \
  55         _D_cplx_lr_div.o        \
  56         _D_cplx_lr_div_ix.o     \
 
 
  93         chacha.o
  94 
  95 XATTROBJS=                      \
  96         xattr_common.o
  97 
  98 COMOBJS=                        \
  99         bcmp.o                  \
 100         bcopy.o                 \
 101         bsearch.o               \
 102         bzero.o                 \
 103         qsort.o                 \
 104         strtol.o                \
 105         strtoul.o               \
 106         strtoll.o               \
 107         strtoull.o
 108 
 109 DTRACEOBJS=                     \
 110         dtrace_data.o
 111 
 112 GENOBJS=                        \
 113         _div64.o                \
 114         _divdi3.o               \
 115         _getsp.o                \
 116         _mul64.o                \
 117         abs.o                   \
 118         alloca.o                \
 119         arc4random.o            \
 120         arc4random_uniform.o    \
 121         byteorder.o             \
 122         byteorder64.o           \
 123         cuexit.o                \
 124         ecvt.o                  \
 125         endian.o                \
 126         errlst.o                \
 127         i386_data.o             \
 128         ladd.o                  \
 129         ldivide.o               \
 130         lmul.o                  \
 131         lock.o                  \
 132         lshiftl.o               \
 
 
 288         stty.o                  \
 289         sync.o                  \
 290         sysconfig.o             \
 291         sysfs.o                 \
 292         sysinfo.o               \
 293         syslwp.o                \
 294         times.o                 \
 295         ulimit.o                \
 296         umask.o                 \
 297         umount2.o               \
 298         utssys.o                \
 299         uucopy.o                \
 300         vhangup.o               \
 301         waitid.o                \
 302         write.o                 \
 303         writev.o                \
 304         yield.o
 305 
 306 SYSOBJS=                        \
 307         __clock_gettime.o       \
 308         __getcontext.o          \
 309         __uadmin.o              \
 310         _lwp_mutex_unlock.o     \
 311         _stack_grow.o           \
 312         door.o                  \
 313         forkx.o                 \
 314         forkallx.o              \
 315         getcontext.o            \
 316         gettimeofday.o          \
 317         lwp_private.o           \
 318         nuname.o                \
 319         ptrace.o                \
 320         syscall.o               \
 321         sysi86.o                \
 322         tls_get_addr.o          \
 323         uadmin.o                \
 324         umount.o                \
 325         uname.o                 \
 326         vforkx.o                \
 327         xstat.o
 
 
 899         lockf64.o               \
 900         stat64.o
 901 
 902 PORTSYS=                        \
 903         _autofssys.o            \
 904         access.o                \
 905         acctctl.o               \
 906         bsd_signal.o            \
 907         chmod.o                 \
 908         chown.o                 \
 909         corectl.o               \
 910         epoll.o                 \
 911         eventfd.o               \
 912         exacctsys.o             \
 913         execl.o                 \
 914         execle.o                \
 915         execv.o                 \
 916         fcntl.o                 \
 917         getpagesizes.o          \
 918         getpeerucred.o          \
 919         inst_sync.o             \
 920         issetugid.o             \
 921         label.o                 \
 922         link.o                  \
 923         lockf.o                 \
 924         lwp.o                   \
 925         lwp_cond.o              \
 926         lwp_rwlock.o            \
 927         lwp_sigmask.o           \
 928         meminfosys.o            \
 929         mkdir.o                 \
 930         mknod.o                 \
 931         msgsys.o                \
 932         nfssys.o                \
 933         open.o                  \
 934         pgrpsys.o               \
 935         posix_sigwait.o         \
 936         ppriv.o                 \
 937         psetsys.o               \
 938         rctlsys.o               \
 
 
1103 DTRACE_DATA =   -zdtrace=dtrace_data
1104 DYNFLAGS +=     $(DTRACE_DATA)
1105 
1106 # DTrace needs an executable data segment.
1107 MAPFILE.NED=
1108 
1109 BUILD.s=        $(AS) $(ASFLAGS) $< -o $@
1110 
1111 # Override this top level flag so the compiler builds in its native
1112 # C99 mode.  This has been enabled to support the complex arithmetic
1113 # added to libc.
1114 C99MODE=        $(C99_ENABLE)
1115 
1116 # libc method of building an archive
1117 # The "$(GREP) -v ' L '" part is necessary only until
1118 # lorder is fixed to ignore thread-local variables.
1119 BUILD.AR= $(RM) $@ ; \
1120         $(AR) q $@ `$(LORDER) $(MOSTOBJS:%=$(DIR)/%) | $(GREP) -v ' L ' | $(TSORT)`
1121 
1122 # extra files for the clean target
1123 CLEANFILES=                     \
1124         $(LIBCDIR)/port/gen/errlst.c    \
1125         $(LIBCDIR)/port/gen/new_list.c  \
1126         assym.h                 \
1127         genassym                \
1128         crt/_rtld.s             \
1129         crt/_rtbootld.s         \
1130         pics/_rtbootld.o        \
1131         pics/crti.o             \
1132         pics/crtn.o             \
1133         $(ALTPICS)
1134 
1135 CLOBBERFILES += $(LIB_PIC)
1136 
1137 # list of C source for lint
1138 SRCS=                                                   \
1139         $(ATOMICOBJS:%.o=$(SRC)/common/atomic/%.c)      \
1140         $(XATTROBJS:%.o=$(SRC)/common/xattr/%.c)        \
1141         $(COMOBJS:%.o=$(SRC)/common/util/%.c)           \
1142         $(DTRACEOBJS:%.o=$(SRC)/common/dtrace/%.c)      \
1143         $(PORTFP:%.o=$(LIBCDIR)/port/fp/%.c)                    \
 
 
1234 $(PORTSYS64:%=pics/%) := \
1235         CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1236 
1237 $(PORTSTDIO_W:%=pics/%) := \
1238         CPPFLAGS += -D_WIDE
1239 
1240 $(PORTPRINT_W:%=pics/%) := \
1241         CPPFLAGS += -D_WIDE
1242 
1243 $(PORTPRINT_C89:%=pics/%) := \
1244         CPPFLAGS += -D_C89_INTMAX32
1245 
1246 $(PORTSTDIO_C89:%=pics/%) := \
1247         CPPFLAGS += -D_C89_INTMAX32
1248 
1249 $(PORTI18N_COND:%=pics/%) := \
1250         CPPFLAGS += -D_WCS_LONGLONG
1251 
1252 pics/arc4random.o :=    CPPFLAGS += -I$(SRC)/common/crypto/chacha
1253 
1254 .KEEP_STATE:
1255 
1256 all: $(LIBS) $(LIB_PIC)
1257 
1258 lint    :=      CPPFLAGS += -I$(LIBCDIR)/$(MACH)/fp
1259 lint    :=      CPPFLAGS += -D_MSE_INT_H -D_LCONV_C99
1260 lint    :=      LINTFLAGS += -mn -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
1261 
1262 lint:
1263         @echo $(LINT.c) ...
1264         @$(LINT.c) $(SRCS) $(LDLIBS)
1265 
1266 $(LINTLIB):= SRCS=$(LIBCDIR)/port/llib-lc
1267 $(LINTLIB):= CPPFLAGS += -D_MSE_INT_H
1268 $(LINTLIB):= LINTFLAGS=-nvx
1269 
1270 # object files that depend on inline template
1271 $(TIL:%=pics/%): $(LIBCBASE)/threads/i386.il
1272 # pics/mul64.o: $(LIBCBASE)/crt/mul64.il
1273 
  
 | 
 
 
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 #
  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>
  26 #
  27 # Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  28 # Use is subject to license terms.
  29 #
  30 
  31 LIBCDIR=        $(SRC)/lib/libc
  32 LIB_PIC=        libc_pic.a
  33 VERS=           .1
  34 CPP=            /usr/lib/cpp
  35 TARGET_ARCH=    i386
  36 
  37 # include comm page definitions
  38 include $(SRC)/lib/commpage/Makefile.shared.com
  39 include $(SRC)/lib/commpage/Makefile.shared.targ
  40 
  41 VALUES=         values-Xa.o
  42 
  43 # objects are grouped by source directory
  44 
  45 # local objects
  46 STRETS=
  47 
  48 CRTOBJS=                        \
  49         cerror.o                \
  50         cerror64.o
  51 
  52 DYNOBJS=                        \
  53         _rtbootld.o
  54 
  55 FPOBJS=                         \
  56         _D_cplx_div.o           \
  57         _D_cplx_div_ix.o        \
  58         _D_cplx_div_rx.o        \
  59         _D_cplx_lr_div.o        \
  60         _D_cplx_lr_div_ix.o     \
 
 
  97         chacha.o
  98 
  99 XATTROBJS=                      \
 100         xattr_common.o
 101 
 102 COMOBJS=                        \
 103         bcmp.o                  \
 104         bcopy.o                 \
 105         bsearch.o               \
 106         bzero.o                 \
 107         qsort.o                 \
 108         strtol.o                \
 109         strtoul.o               \
 110         strtoll.o               \
 111         strtoull.o
 112 
 113 DTRACEOBJS=                     \
 114         dtrace_data.o
 115 
 116 GENOBJS=                        \
 117         $(COMMPAGE_OBJS)        \
 118         _div64.o                \
 119         _divdi3.o               \
 120         _getsp.o                \
 121         _mul64.o                \
 122         abs.o                   \
 123         alloca.o                \
 124         arc4random.o            \
 125         arc4random_uniform.o    \
 126         byteorder.o             \
 127         byteorder64.o           \
 128         cuexit.o                \
 129         ecvt.o                  \
 130         endian.o                \
 131         errlst.o                \
 132         i386_data.o             \
 133         ladd.o                  \
 134         ldivide.o               \
 135         lmul.o                  \
 136         lock.o                  \
 137         lshiftl.o               \
 
 
 293         stty.o                  \
 294         sync.o                  \
 295         sysconfig.o             \
 296         sysfs.o                 \
 297         sysinfo.o               \
 298         syslwp.o                \
 299         times.o                 \
 300         ulimit.o                \
 301         umask.o                 \
 302         umount2.o               \
 303         utssys.o                \
 304         uucopy.o                \
 305         vhangup.o               \
 306         waitid.o                \
 307         write.o                 \
 308         writev.o                \
 309         yield.o
 310 
 311 SYSOBJS=                        \
 312         __clock_gettime.o       \
 313         __clock_gettime_sys.o   \
 314         __getcontext.o          \
 315         __uadmin.o              \
 316         _lwp_mutex_unlock.o     \
 317         _stack_grow.o           \
 318         door.o                  \
 319         forkx.o                 \
 320         forkallx.o              \
 321         getcontext.o            \
 322         gettimeofday.o          \
 323         lwp_private.o           \
 324         nuname.o                \
 325         ptrace.o                \
 326         syscall.o               \
 327         sysi86.o                \
 328         tls_get_addr.o          \
 329         uadmin.o                \
 330         umount.o                \
 331         uname.o                 \
 332         vforkx.o                \
 333         xstat.o
 
 
 905         lockf64.o               \
 906         stat64.o
 907 
 908 PORTSYS=                        \
 909         _autofssys.o            \
 910         access.o                \
 911         acctctl.o               \
 912         bsd_signal.o            \
 913         chmod.o                 \
 914         chown.o                 \
 915         corectl.o               \
 916         epoll.o                 \
 917         eventfd.o               \
 918         exacctsys.o             \
 919         execl.o                 \
 920         execle.o                \
 921         execv.o                 \
 922         fcntl.o                 \
 923         getpagesizes.o          \
 924         getpeerucred.o          \
 925         inotify.o               \
 926         inst_sync.o             \
 927         issetugid.o             \
 928         label.o                 \
 929         link.o                  \
 930         lockf.o                 \
 931         lwp.o                   \
 932         lwp_cond.o              \
 933         lwp_rwlock.o            \
 934         lwp_sigmask.o           \
 935         meminfosys.o            \
 936         mkdir.o                 \
 937         mknod.o                 \
 938         msgsys.o                \
 939         nfssys.o                \
 940         open.o                  \
 941         pgrpsys.o               \
 942         posix_sigwait.o         \
 943         ppriv.o                 \
 944         psetsys.o               \
 945         rctlsys.o               \
 
 
1110 DTRACE_DATA =   -zdtrace=dtrace_data
1111 DYNFLAGS +=     $(DTRACE_DATA)
1112 
1113 # DTrace needs an executable data segment.
1114 MAPFILE.NED=
1115 
1116 BUILD.s=        $(AS) $(ASFLAGS) $< -o $@
1117 
1118 # Override this top level flag so the compiler builds in its native
1119 # C99 mode.  This has been enabled to support the complex arithmetic
1120 # added to libc.
1121 C99MODE=        $(C99_ENABLE)
1122 
1123 # libc method of building an archive
1124 # The "$(GREP) -v ' L '" part is necessary only until
1125 # lorder is fixed to ignore thread-local variables.
1126 BUILD.AR= $(RM) $@ ; \
1127         $(AR) q $@ `$(LORDER) $(MOSTOBJS:%=$(DIR)/%) | $(GREP) -v ' L ' | $(TSORT)`
1128 
1129 # extra files for the clean target
1130 CLEANFILES+=                    \
1131         $(LIBCDIR)/port/gen/errlst.c    \
1132         $(LIBCDIR)/port/gen/new_list.c  \
1133         assym.h                 \
1134         genassym                \
1135         crt/_rtld.s             \
1136         crt/_rtbootld.s         \
1137         pics/_rtbootld.o        \
1138         pics/crti.o             \
1139         pics/crtn.o             \
1140         $(ALTPICS)
1141 
1142 CLOBBERFILES += $(LIB_PIC)
1143 
1144 # list of C source for lint
1145 SRCS=                                                   \
1146         $(ATOMICOBJS:%.o=$(SRC)/common/atomic/%.c)      \
1147         $(XATTROBJS:%.o=$(SRC)/common/xattr/%.c)        \
1148         $(COMOBJS:%.o=$(SRC)/common/util/%.c)           \
1149         $(DTRACEOBJS:%.o=$(SRC)/common/dtrace/%.c)      \
1150         $(PORTFP:%.o=$(LIBCDIR)/port/fp/%.c)                    \
 
 
1241 $(PORTSYS64:%=pics/%) := \
1242         CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
1243 
1244 $(PORTSTDIO_W:%=pics/%) := \
1245         CPPFLAGS += -D_WIDE
1246 
1247 $(PORTPRINT_W:%=pics/%) := \
1248         CPPFLAGS += -D_WIDE
1249 
1250 $(PORTPRINT_C89:%=pics/%) := \
1251         CPPFLAGS += -D_C89_INTMAX32
1252 
1253 $(PORTSTDIO_C89:%=pics/%) := \
1254         CPPFLAGS += -D_C89_INTMAX32
1255 
1256 $(PORTI18N_COND:%=pics/%) := \
1257         CPPFLAGS += -D_WCS_LONGLONG
1258 
1259 pics/arc4random.o :=    CPPFLAGS += -I$(SRC)/common/crypto/chacha
1260 
1261 pics/__clock_gettime.o := CPPFLAGS += $(COMMPAGE_CPPFLAGS)
1262 
1263 .KEEP_STATE:
1264 
1265 all: $(LIBS) $(LIB_PIC)
1266 
1267 lint    :=      CPPFLAGS += -I$(LIBCDIR)/$(MACH)/fp
1268 lint    :=      CPPFLAGS += -D_MSE_INT_H -D_LCONV_C99
1269 lint    :=      LINTFLAGS += -mn -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
1270 
1271 lint:
1272         @echo $(LINT.c) ...
1273         @$(LINT.c) $(SRCS) $(LDLIBS)
1274 
1275 $(LINTLIB):= SRCS=$(LIBCDIR)/port/llib-lc
1276 $(LINTLIB):= CPPFLAGS += -D_MSE_INT_H
1277 $(LINTLIB):= LINTFLAGS=-nvx
1278 
1279 # object files that depend on inline template
1280 $(TIL:%=pics/%): $(LIBCBASE)/threads/i386.il
1281 # pics/mul64.o: $(LIBCBASE)/crt/mul64.il
1282 
  
 |