Print this page
1235 Use symbol capabilities to eliminate libc_hwcap*

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libc/i386/Makefile
          +++ new/usr/src/lib/libc/i386/Makefile
↓ open down ↓ 11 lines elided ↑ open up ↑
  12   12  #
  13   13  # When distributing Covered Code, include this CDDL HEADER in each
  14   14  # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15  # If applicable, add the following below this CDDL HEADER, with the
  16   16  # fields enclosed by brackets "[]" replaced with your own identifying
  17   17  # information: Portions Copyright [yyyy] [name of copyright owner]
  18   18  #
  19   19  # CDDL HEADER END
  20   20  #
  21   21  #
  22      -# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
       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.
  23   28  # Use is subject to license terms.
  24   29  #
  25      -# ident "%Z%%M% %I%     %E% SMI"
       30 +
       31 +LIBCBASE=       .
       32 +LIBRARY=        libc.a
       33 +LIBCDIR=        $(SRC)/lib/libc
       34 +LIB_PIC=        libc_pic.a
       35 +VERS=           .1
       36 +CPP=            /usr/lib/cpp
       37 +TARGET_ARCH=    i386
       38 +
       39 +# include comm page definitions
       40 +include $(SRC)/lib/commpage/Makefile.shared.com
       41 +include $(SRC)/lib/commpage/Makefile.shared.targ
       42 +
       43 +VALUES=         values-Xa.o
       44 +
       45 +# objects are grouped by source directory
       46 +
       47 +# Symbol capabilities objects.
       48 +EXTPICS= \
       49 +        $(LIBCDIR)/capabilities/i386-hwcap1/pics/symcap.o \
       50 +        $(LIBCDIR)/capabilities/i386-hwcap2/pics/symcap.o \
       51 +        $(LIBCDIR)/capabilities/i386-hwcap3/pics/symcap.o
       52 +
       53 +# local objects
       54 +STRETS=
       55 +
       56 +CRTOBJS=                        \
       57 +        cerror.o                \
       58 +        cerror64.o
       59 +
       60 +DYNOBJS=                        \
       61 +        _rtbootld.o
       62 +
       63 +FPOBJS=                         \
       64 +        _D_cplx_div.o           \
       65 +        _D_cplx_div_ix.o        \
       66 +        _D_cplx_div_rx.o        \
       67 +        _D_cplx_lr_div.o        \
       68 +        _D_cplx_lr_div_ix.o     \
       69 +        _D_cplx_lr_div_rx.o     \
       70 +        _D_cplx_mul.o           \
       71 +        _F_cplx_div.o           \
       72 +        _F_cplx_div_ix.o        \
       73 +        _F_cplx_div_rx.o        \
       74 +        _F_cplx_lr_div.o        \
       75 +        _F_cplx_lr_div_ix.o     \
       76 +        _F_cplx_lr_div_rx.o     \
       77 +        _F_cplx_mul.o           \
       78 +        _X_cplx_div.o           \
       79 +        _X_cplx_div_ix.o        \
       80 +        _X_cplx_div_rx.o        \
       81 +        _X_cplx_lr_div.o        \
       82 +        _X_cplx_lr_div_ix.o     \
       83 +        _X_cplx_lr_div_rx.o     \
       84 +        _X_cplx_mul.o           \
       85 +        fpgetmask.o             \
       86 +        fpgetround.o            \
       87 +        fpgetsticky.o           \
       88 +        fpsetmask.o             \
       89 +        fpsetround.o            \
       90 +        fpsetsticky.o           \
       91 +        fpstart.o               \
       92 +        ieee.o
       93 +
       94 +FPASMOBJS=                      \
       95 +        __xgetRD.o              \
       96 +        _base_il.o              \
       97 +        _xtoll.o                \
       98 +        _xtoull.o               \
       99 +        fpcw.o
      100 +
      101 +ATOMICOBJS=                     \
      102 +        atomic.o
      103 +
      104 +CHACHAOBJS=                     \
      105 +        chacha.o
      106 +
      107 +XATTROBJS=                      \
      108 +        xattr_common.o
      109 +
      110 +COMOBJS=                        \
      111 +        bcmp.o                  \
      112 +        bcopy.o                 \
      113 +        bsearch.o               \
      114 +        bzero.o                 \
      115 +        qsort.o                 \
      116 +        strtol.o                \
      117 +        strtoul.o               \
      118 +        strtoll.o               \
      119 +        strtoull.o
      120 +
      121 +DTRACEOBJS=                     \
      122 +        dtrace_data.o
      123 +
      124 +SECFLAGSOBJS=                   \
      125 +        secflags.o
      126 +
      127 +GENOBJS=                        \
      128 +        $(COMMPAGE_OBJS)        \
      129 +        _div64.o                \
      130 +        _divdi3.o               \
      131 +        _getsp.o                \
      132 +        _mul64.o                \
      133 +        abs.o                   \
      134 +        alloca.o                \
      135 +        arc4random.o            \
      136 +        arc4random_uniform.o    \
      137 +        byteorder.o             \
      138 +        byteorder64.o           \
      139 +        cuexit.o                \
      140 +        ecvt.o                  \
      141 +        endian.o                \
      142 +        errlst.o                \
      143 +        i386_data.o             \
      144 +        ladd.o                  \
      145 +        ldivide.o               \
      146 +        lmul.o                  \
      147 +        lock.o                  \
      148 +        lshiftl.o               \
      149 +        lsign.o                 \
      150 +        lsub.o                  \
      151 +        makectxt.o              \
      152 +        memccpy.o               \
      153 +        memchr.o                \
      154 +        memcmp.o                \
      155 +        memcpy.o                \
      156 +        memset.o                \
      157 +        new_list.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 +
      173 +# sysobjs that contain large-file interfaces
      174 +COMSYSOBJS64=                   \
      175 +        fstatvfs64.o            \
      176 +        getdents64.o            \
      177 +        getrlimit64.o           \
      178 +        lseek64.o               \
      179 +        mmap64.o                \
      180 +        pread64.o               \
      181 +        preadv64.o              \
      182 +        pwrite64.o              \
      183 +        pwritev64.o             \
      184 +        setrlimit64.o           \
      185 +        statvfs64.o
      186 +
      187 +SYSOBJS64=
      188 +
      189 +COMSYSOBJS=                     \
      190 +        __clock_timer.o         \
      191 +        __getloadavg.o          \
      192 +        __rusagesys.o           \
      193 +        __signotify.o           \
      194 +        __sigrt.o               \
      195 +        __time.o                \
      196 +        _lgrp_home_fast.o       \
      197 +        _lgrpsys.o              \
      198 +        _nfssys.o               \
      199 +        _portfs.o               \
      200 +        _pset.o                 \
      201 +        _rpcsys.o               \
      202 +        _sigaction.o            \
      203 +        _so_accept.o            \
      204 +        _so_bind.o              \
      205 +        _so_connect.o           \
      206 +        _so_getpeername.o       \
      207 +        _so_getsockname.o       \
      208 +        _so_getsockopt.o        \
      209 +        _so_listen.o            \
      210 +        _so_recv.o              \
      211 +        _so_recvfrom.o          \
      212 +        _so_recvmsg.o           \
      213 +        _so_send.o              \
      214 +        _so_sendmsg.o           \
      215 +        _so_sendto.o            \
      216 +        _so_setsockopt.o        \
      217 +        _so_shutdown.o          \
      218 +        _so_socket.o            \
      219 +        _so_socketpair.o        \
      220 +        _sockconfig.o           \
      221 +        acct.o                  \
      222 +        acl.o                   \
      223 +        adjtime.o               \
      224 +        alarm.o                 \
      225 +        brk.o                   \
      226 +        chdir.o                 \
      227 +        chroot.o                \
      228 +        cladm.o                 \
      229 +        close.o                 \
      230 +        execve.o                \
      231 +        exit.o                  \
      232 +        facl.o                  \
      233 +        fchdir.o                \
      234 +        fchroot.o               \
      235 +        fdsync.o                \
      236 +        fpathconf.o             \
      237 +        fstatfs.o               \
      238 +        fstatvfs.o              \
      239 +        getcpuid.o              \
      240 +        getdents.o              \
      241 +        getegid.o               \
      242 +        geteuid.o               \
      243 +        getgid.o                \
      244 +        getgroups.o             \
      245 +        gethrtime.o             \
      246 +        getitimer.o             \
      247 +        getmsg.o                \
      248 +        getpid.o                \
      249 +        getpmsg.o               \
      250 +        getppid.o               \
      251 +        getrandom.o             \
      252 +        getrlimit.o             \
      253 +        getuid.o                \
      254 +        gtty.o                  \
      255 +        install_utrap.o         \
      256 +        ioctl.o                 \
      257 +        kaio.o                  \
      258 +        kill.o                  \
      259 +        llseek.o                \
      260 +        lseek.o                 \
      261 +        mmapobjsys.o            \
      262 +        memcntl.o               \
      263 +        mincore.o               \
      264 +        mmap.o                  \
      265 +        modctl.o                \
      266 +        mount.o                 \
      267 +        mprotect.o              \
      268 +        munmap.o                \
      269 +        nice.o                  \
      270 +        ntp_adjtime.o           \
      271 +        ntp_gettime.o           \
      272 +        p_online.o              \
      273 +        pathconf.o              \
      274 +        pause.o                 \
      275 +        pcsample.o              \
      276 +        pipe2.o                 \
      277 +        pollsys.o               \
      278 +        pread.o                 \
      279 +        preadv.o                \
      280 +        priocntlset.o           \
      281 +        processor_bind.o        \
      282 +        processor_info.o        \
      283 +        profil.o                \
      284 +        psecflagsset.o          \
      285 +        putmsg.o                \
      286 +        putpmsg.o               \
      287 +        pwrite.o                \
      288 +        pwritev.o               \
      289 +        read.o                  \
      290 +        readv.o                 \
      291 +        resolvepath.o           \
      292 +        seteguid.o              \
      293 +        setgid.o                \
      294 +        setgroups.o             \
      295 +        setitimer.o             \
      296 +        setreid.o               \
      297 +        setrlimit.o             \
      298 +        setuid.o                \
      299 +        sigaltstk.o             \
      300 +        sigprocmsk.o            \
      301 +        sigsendset.o            \
      302 +        sigsuspend.o            \
      303 +        statfs.o                \
      304 +        statvfs.o               \
      305 +        stty.o                  \
      306 +        sync.o                  \
      307 +        sysconfig.o             \
      308 +        sysfs.o                 \
      309 +        sysinfo.o               \
      310 +        syslwp.o                \
      311 +        times.o                 \
      312 +        ulimit.o                \
      313 +        umask.o                 \
      314 +        umount2.o               \
      315 +        utssys.o                \
      316 +        uucopy.o                \
      317 +        vhangup.o               \
      318 +        waitid.o                \
      319 +        write.o                 \
      320 +        writev.o                \
      321 +        yield.o
      322 +
      323 +SYSOBJS=                        \
      324 +        __clock_gettime.o       \
      325 +        __clock_gettime_sys.o   \
      326 +        __getcontext.o          \
      327 +        __uadmin.o              \
      328 +        _lwp_mutex_unlock.o     \
      329 +        _stack_grow.o           \
      330 +        door.o                  \
      331 +        forkx.o                 \
      332 +        forkallx.o              \
      333 +        getcontext.o            \
      334 +        gettimeofday.o          \
      335 +        lwp_private.o           \
      336 +        nuname.o                \
      337 +        ptrace.o                \
      338 +        syscall.o               \
      339 +        sysi86.o                \
      340 +        tls_get_addr.o          \
      341 +        uadmin.o                \
      342 +        umount.o                \
      343 +        uname.o                 \
      344 +        vforkx.o                \
      345 +        xstat.o
      346 +
      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
      356 +
      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
      386 +
      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 +        basename.o              \
      405 +        calloc.o                \
      406 +        catgets.o               \
      407 +        catopen.o               \
      408 +        cfgetispeed.o           \
      409 +        cfgetospeed.o           \
      410 +        cfree.o                 \
      411 +        cfsetispeed.o           \
      412 +        cfsetospeed.o           \
      413 +        cftime.o                \
      414 +        clock.o                 \
      415 +        closedir.o              \
      416 +        closefrom.o             \
      417 +        confstr.o               \
      418 +        crypt.o                 \
      419 +        csetlen.o               \
      420 +        ctime.o                 \
      421 +        ctime_r.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 +        getpw.o                 \
      469 +        getpwnam.o              \
      470 +        getpwnam_r.o            \
      471 +        getrusage.o             \
      472 +        getspent.o              \
      473 +        getspent_r.o            \
      474 +        getsubopt.o             \
      475 +        gettxt.o                \
      476 +        getusershell.o          \
      477 +        getut.o                 \
      478 +        getutx.o                \
      479 +        getvfsent.o             \
      480 +        getwd.o                 \
      481 +        getwidth.o              \
      482 +        getxby_door.o           \
      483 +        gtxt.o                  \
      484 +        hsearch.o               \
      485 +        iconv.o                 \
      486 +        imaxabs.o               \
      487 +        imaxdiv.o               \
      488 +        index.o                 \
      489 +        initgroups.o            \
      490 +        insque.o                \
      491 +        isaexec.o               \
      492 +        isastream.o             \
      493 +        isatty.o                \
      494 +        killpg.o                \
      495 +        klpdlib.o               \
      496 +        l64a.o                  \
      497 +        lckpwdf.o               \
      498 +        lconstants.o            \
      499 +        lexp10.o                \
      500 +        lfind.o                 \
      501 +        lfmt.o                  \
      502 +        lfmt_log.o              \
      503 +        llabs.o                 \
      504 +        lldiv.o                 \
      505 +        llog10.o                \
      506 +        lltostr.o               \
      507 +        localtime.o             \
      508 +        lsearch.o               \
      509 +        madvise.o               \
      510 +        malloc.o                \
      511 +        memalign.o              \
      512 +        memmem.o                \
      513 +        mkdev.o                 \
      514 +        mkdtemp.o               \
      515 +        mkfifo.o                \
      516 +        mkstemp.o               \
      517 +        mktemp.o                \
      518 +        mlock.o                 \
      519 +        mlockall.o              \
      520 +        mon.o                   \
      521 +        msync.o                 \
      522 +        munlock.o               \
      523 +        munlockall.o            \
      524 +        ndbm.o                  \
      525 +        nftw.o                  \
      526 +        nlspath_checks.o        \
      527 +        nsparse.o               \
      528 +        nss_common.o            \
      529 +        nss_dbdefs.o            \
      530 +        nss_deffinder.o         \
      531 +        opendir.o               \
      532 +        opt_data.o              \
      533 +        perror.o                \
      534 +        pfmt.o                  \
      535 +        pfmt_data.o             \
      536 +        pfmt_print.o            \
      537 +        pipe.o                  \
      538 +        plock.o                 \
      539 +        poll.o                  \
      540 +        posix_fadvise.o         \
      541 +        posix_fallocate.o       \
      542 +        posix_madvise.o         \
      543 +        posix_memalign.o        \
      544 +        priocntl.o              \
      545 +        privlib.o               \
      546 +        priv_str_xlate.o        \
      547 +        psecflags.o             \
      548 +        psiginfo.o              \
      549 +        psignal.o               \
      550 +        pt.o                    \
      551 +        putpwent.o              \
      552 +        putspent.o              \
      553 +        raise.o                 \
      554 +        rand.o                  \
      555 +        random.o                \
      556 +        rctlops.o               \
      557 +        readdir.o               \
      558 +        readdir_r.o             \
      559 +        realpath.o              \
      560 +        reboot.o                \
      561 +        regexpr.o               \
      562 +        remove.o                \
      563 +        rewinddir.o             \
      564 +        rindex.o                \
      565 +        scandir.o               \
      566 +        seekdir.o               \
      567 +        select.o                \
      568 +        setlabel.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 +        strtoumax.o             \
      599 +        swab.o                  \
      600 +        swapctl.o               \
      601 +        sysconf.o               \
      602 +        syslog.o                \
      603 +        tcdrain.o               \
      604 +        tcflow.o                \
      605 +        tcflush.o               \
      606 +        tcgetattr.o             \
      607 +        tcgetpgrp.o             \
      608 +        tcgetsid.o              \
      609 +        tcsendbreak.o           \
      610 +        tcsetattr.o             \
      611 +        tcsetpgrp.o             \
      612 +        tell.o                  \
      613 +        telldir.o               \
      614 +        tfind.o                 \
      615 +        time_data.o             \
      616 +        time_gdata.o            \
      617 +        timespec_get.o          \
      618 +        tls_data.o              \
      619 +        truncate.o              \
      620 +        tsdalloc.o              \
      621 +        tsearch.o               \
      622 +        ttyname.o               \
      623 +        ttyslot.o               \
      624 +        ualarm.o                \
      625 +        ucred.o                 \
      626 +        valloc.o                \
      627 +        vlfmt.o                 \
      628 +        vpfmt.o                 \
      629 +        waitpid.o               \
      630 +        walkstack.o             \
      631 +        wdata.o                 \
      632 +        xgetwidth.o             \
      633 +        xpg4.o                  \
      634 +        xpg6.o
      635 +
      636 +PORTPRINT_W=                    \
      637 +        doprnt_w.o
      638 +
      639 +PORTPRINT=                      \
      640 +        asprintf.o              \
      641 +        doprnt.o                \
      642 +        fprintf.o               \
      643 +        printf.o                \
      644 +        snprintf.o              \
      645 +        sprintf.o               \
      646 +        vfprintf.o              \
      647 +        vprintf.o               \
      648 +        vsnprintf.o             \
      649 +        vsprintf.o              \
      650 +        vwprintf.o              \
      651 +        wprintf.o
      652 +
      653 +# c89 variants to support 32-bit size of c89 u/intmax_t (32-bit libc only)
      654 +PORTPRINT_C89=                  \
      655 +        vfprintf_c89.o          \
      656 +        vprintf_c89.o           \
      657 +        vsnprintf_c89.o         \
      658 +        vsprintf_c89.o          \
      659 +        vwprintf_c89.o
      660 +
      661 +PORTSTDIO_C89=                  \
      662 +        vscanf_c89.o            \
      663 +        vwscanf_c89.o           \
      664 +
      665 +# portable stdio objects that contain large file interfaces.
      666 +# Note: fopen64 is a special case, as we build it small.
      667 +PORTSTDIO64=                    \
      668 +        fopen64.o               \
      669 +        fpos64.o
      670 +
      671 +PORTSTDIO_W=                    \
      672 +        doscan_w.o
      673 +
      674 +PORTSTDIO=                      \
      675 +        __extensions.o          \
      676 +        _endopen.o              \
      677 +        _filbuf.o               \
      678 +        _findbuf.o              \
      679 +        _flsbuf.o               \
      680 +        _wrtchk.o               \
      681 +        clearerr.o              \
      682 +        ctermid.o               \
      683 +        ctermid_r.o             \
      684 +        cuserid.o               \
      685 +        data.o                  \
      686 +        doscan.o                \
      687 +        fdopen.o                \
      688 +        feof.o                  \
      689 +        ferror.o                \
      690 +        fgetc.o                 \
      691 +        fgets.o                 \
      692 +        fileno.o                \
      693 +        flockf.o                \
      694 +        flush.o                 \
      695 +        fopen.o                 \
      696 +        fpos.o                  \
      697 +        fputc.o                 \
      698 +        fputs.o                 \
      699 +        fread.o                 \
      700 +        fseek.o                 \
      701 +        fseeko.o                \
      702 +        ftell.o                 \
      703 +        ftello.o                \
      704 +        fwrite.o                \
      705 +        getc.o                  \
      706 +        getchar.o               \
      707 +        getline.o               \
      708 +        getpass.o               \
      709 +        gets.o                  \
      710 +        getw.o                  \
      711 +        mse.o                   \
      712 +        popen.o                 \
      713 +        putc.o                  \
      714 +        putchar.o               \
      715 +        puts.o                  \
      716 +        putw.o                  \
      717 +        rewind.o                \
      718 +        scanf.o                 \
      719 +        setbuf.o                \
      720 +        setbuffer.o             \
      721 +        setvbuf.o               \
      722 +        system.o                \
      723 +        tempnam.o               \
      724 +        tmpfile.o               \
      725 +        tmpnam_r.o              \
      726 +        ungetc.o                \
      727 +        vscanf.o                \
      728 +        vwscanf.o               \
      729 +        wscanf.o
      730 +
      731 +PORTI18N=                       \
      732 +        getwchar.o              \
      733 +        putwchar.o              \
      734 +        putws.o                 \
      735 +        strtows.o               \
      736 +        wcsnlen.o               \
      737 +        wcsstr.o                \
      738 +        wcstoimax.o             \
      739 +        wcstol.o                \
      740 +        wcstoul.o               \
      741 +        wcswcs.o                \
      742 +        wmemchr.o               \
      743 +        wmemcmp.o               \
      744 +        wmemcpy.o               \
      745 +        wmemmove.o              \
      746 +        wmemset.o               \
      747 +        wscat.o                 \
      748 +        wschr.o                 \
      749 +        wscmp.o                 \
      750 +        wscpy.o                 \
      751 +        wscspn.o                \
      752 +        wsdup.o                 \
      753 +        wslen.o                 \
      754 +        wsncat.o                \
      755 +        wsncmp.o                \
      756 +        wsncpy.o                \
      757 +        wspbrk.o                \
      758 +        wsprintf.o              \
      759 +        wsrchr.o                \
      760 +        wsscanf.o               \
      761 +        wsspn.o                 \
      762 +        wstod.o                 \
      763 +        wstok.o                 \
      764 +        wstol.o                 \
      765 +        wstoll.o                \
      766 +        wsxfrm.o                \
      767 +        gettext.o               \
      768 +        gettext_gnu.o           \
      769 +        gettext_real.o          \
      770 +        gettext_util.o          \
      771 +        plural_parser.o         \
      772 +        wdresolve.o             \
      773 +        _ctype.o                \
      774 +        isascii.o               \
      775 +        toascii.o
      776 +
      777 +PORTI18N_COND=                  \
      778 +        wcstol_longlong.o       \
      779 +        wcstoul_longlong.o
      780 +
      781 +PORTLOCALE=                     \
      782 +        big5.o                  \
      783 +        btowc.o                 \
      784 +        collate.o               \
      785 +        collcmp.o               \
      786 +        euc.o                   \
      787 +        fnmatch.o               \
      788 +        fgetwc.o                \
      789 +        fgetws.o                \
      790 +        fix_grouping.o          \
      791 +        fputwc.o                \
      792 +        fputws.o                \
      793 +        fwide.o                 \
      794 +        gb18030.o               \
      795 +        gb2312.o                \
      796 +        gbk.o                   \
      797 +        getdate.o               \
      798 +        isdigit.o               \
      799 +        iswctype.o              \
      800 +        ldpart.o                \
      801 +        lmessages.o             \
      802 +        lnumeric.o              \
      803 +        lmonetary.o             \
      804 +        localeconv.o            \
      805 +        localeimpl.o            \
      806 +        mbftowc.o               \
      807 +        mblen.o                 \
      808 +        mbrlen.o                \
      809 +        mbrtowc.o               \
      810 +        mbsinit.o               \
      811 +        mbsnrtowcs.o            \
      812 +        mbsrtowcs.o             \
      813 +        mbstowcs.o              \
      814 +        mbtowc.o                \
      815 +        mskanji.o               \
      816 +        nextwctype.o            \
      817 +        nl_langinfo.o           \
      818 +        none.o                  \
      819 +        regcomp.o               \
      820 +        regfree.o               \
      821 +        regerror.o              \
      822 +        regexec.o               \
      823 +        rune.o                  \
      824 +        runetype.o              \
      825 +        setlocale.o             \
      826 +        setrunelocale.o         \
      827 +        strcasecmp.o            \
      828 +        strcasestr.o            \
      829 +        strcoll.o               \
      830 +        strfmon.o               \
      831 +        strftime.o              \
      832 +        strncasecmp.o           \
      833 +        strptime.o              \
      834 +        strxfrm.o               \
      835 +        table.o                 \
      836 +        timelocal.o             \
      837 +        tolower.o               \
      838 +        towlower.o              \
      839 +        ungetwc.o               \
      840 +        utf8.o                  \
      841 +        wcrtomb.o               \
      842 +        wcscasecmp.o            \
      843 +        wcscoll.o               \
      844 +        wcsftime.o              \
      845 +        wcsnrtombs.o            \
      846 +        wcsrtombs.o             \
      847 +        wcswidth.o              \
      848 +        wcstombs.o              \
      849 +        wcsxfrm.o               \
      850 +        wctob.o                 \
      851 +        wctomb.o                \
      852 +        wctrans.o               \
      853 +        wctype.o                \
      854 +        wcwidth.o               \
      855 +        wscol.o
      856 +
      857 +AIOOBJS=                        \
      858 +        aio.o                   \
      859 +        aio_alloc.o             \
      860 +        posix_aio.o
      861 +
      862 +RTOBJS=                         \
      863 +        clock_timer.o           \
      864 +        mqueue.o                \
      865 +        pos4obj.o               \
      866 +        sched.o                 \
      867 +        sem.o                   \
      868 +        shm.o                   \
      869 +        sigev_thread.o
      870 +
      871 +TPOOLOBJS=                      \
      872 +        thread_pool.o
      873 +
      874 +THREADSOBJS=                    \
      875 +        alloc.o                 \
      876 +        assfail.o               \
      877 +        cancel.o                \
      878 +        c11_thr.o               \
      879 +        door_calls.o            \
      880 +        tmem.o                  \
      881 +        pthr_attr.o             \
      882 +        pthr_barrier.o          \
      883 +        pthr_cond.o             \
      884 +        pthr_mutex.o            \
      885 +        pthr_rwlock.o           \
      886 +        pthread.o               \
      887 +        rwlock.o                \
      888 +        scalls.o                \
      889 +        sema.o                  \
      890 +        sigaction.o             \
      891 +        spawn.o                 \
      892 +        synch.o                 \
      893 +        tdb_agent.o             \
      894 +        thr.o                   \
      895 +        thread_interface.o      \
      896 +        tls.o                   \
      897 +        tsd.o
      898 +
      899 +THREADSMACHOBJS=                \
      900 +        machdep.o
      901 +
      902 +THREADSASMOBJS=                 \
      903 +        asm_subr.o
      904 +
      905 +UNICODEOBJS=                    \
      906 +        u8_textprep.o           \
      907 +        uconv.o
      908 +
      909 +UNWINDMACHOBJS=                 \
      910 +        unwind.o
      911 +
      912 +UNWINDASMOBJS=                  \
      913 +        unwind_frame.o
      914 +
      915 +# objects that implement the transitional large file API
      916 +PORTSYS64=                      \
      917 +        lockf64.o               \
      918 +        stat64.o
      919 +
      920 +PORTSYS=                        \
      921 +        _autofssys.o            \
      922 +        access.o                \
      923 +        acctctl.o               \
      924 +        bsd_signal.o            \
      925 +        chmod.o                 \
      926 +        chown.o                 \
      927 +        corectl.o               \
      928 +        epoll.o                 \
      929 +        eventfd.o               \
      930 +        exacctsys.o             \
      931 +        execl.o                 \
      932 +        execle.o                \
      933 +        execv.o                 \
      934 +        fcntl.o                 \
      935 +        getpagesizes.o          \
      936 +        getpeerucred.o          \
      937 +        inst_sync.o             \
      938 +        issetugid.o             \
      939 +        label.o                 \
      940 +        link.o                  \
      941 +        lockf.o                 \
      942 +        lwp.o                   \
      943 +        lwp_cond.o              \
      944 +        lwp_rwlock.o            \
      945 +        lwp_sigmask.o           \
      946 +        meminfosys.o            \
      947 +        mkdir.o                 \
      948 +        mknod.o                 \
      949 +        msgsys.o                \
      950 +        nfssys.o                \
      951 +        open.o                  \
      952 +        pgrpsys.o               \
      953 +        posix_sigwait.o         \
      954 +        ppriv.o                 \
      955 +        psetsys.o               \
      956 +        rctlsys.o               \
      957 +        readlink.o              \
      958 +        rename.o                \
      959 +        sbrk.o                  \
      960 +        semsys.o                \
      961 +        set_errno.o             \
      962 +        sharefs.o               \
      963 +        shmsys.o                \
      964 +        sidsys.o                \
      965 +        siginterrupt.o          \
      966 +        signal.o                \
      967 +        signalfd.o              \
      968 +        sigpending.o            \
      969 +        sigstack.o              \
      970 +        stat.o                  \
      971 +        symlink.o               \
      972 +        tasksys.o               \
      973 +        time.o                  \
      974 +        time_util.o             \
      975 +        timerfd.o               \
      976 +        ucontext.o              \
      977 +        unlink.o                \
      978 +        ustat.o                 \
      979 +        utimesys.o              \
      980 +        zone.o
      981 +
      982 +PORTREGEX=                      \
      983 +        glob.o                  \
      984 +        regcmp.o                \
      985 +        regex.o                 \
      986 +        wordexp.o
      987 +
      988 +PORTREGEX64=                    \
      989 +        glob64.o
      990 +
      991 +MOSTOBJS=                       \
      992 +        $(STRETS)               \
      993 +        $(CRTOBJS)              \
      994 +        $(DYNOBJS)              \
      995 +        $(FPOBJS)               \
      996 +        $(FPASMOBJS)            \
      997 +        $(ATOMICOBJS)           \
      998 +        $(CHACHAOBJS)           \
      999 +        $(XATTROBJS)            \
     1000 +        $(COMOBJS)              \
     1001 +        $(DTRACEOBJS)           \
     1002 +        $(GENOBJS)              \
     1003 +        $(PORTFP)               \
     1004 +        $(PORTGEN)              \
     1005 +        $(PORTGEN64)            \
     1006 +        $(PORTI18N)             \
     1007 +        $(PORTI18N_COND)        \
     1008 +        $(PORTLOCALE)           \
     1009 +        $(PORTPRINT)            \
     1010 +        $(PORTPRINT_C89)        \
     1011 +        $(PORTPRINT_W)          \
     1012 +        $(PORTREGEX)            \
     1013 +        $(PORTREGEX64)          \
     1014 +        $(PORTSTDIO)            \
     1015 +        $(PORTSTDIO64)          \
     1016 +        $(PORTSTDIO_C89)        \
     1017 +        $(PORTSTDIO_W)          \
     1018 +        $(PORTSYS)              \
     1019 +        $(PORTSYS64)            \
     1020 +        $(AIOOBJS)              \
     1021 +        $(RTOBJS)               \
     1022 +        $(SECFLAGSOBJS)         \
     1023 +        $(TPOOLOBJS)            \
     1024 +        $(THREADSOBJS)          \
     1025 +        $(THREADSMACHOBJS)      \
     1026 +        $(THREADSASMOBJS)       \
     1027 +        $(UNICODEOBJS)          \
     1028 +        $(UNWINDMACHOBJS)       \
     1029 +        $(UNWINDASMOBJS)        \
     1030 +        $(COMSYSOBJS)           \
     1031 +        $(SYSOBJS)              \
     1032 +        $(COMSYSOBJS64)         \
     1033 +        $(SYSOBJS64)            \
     1034 +        $(VALUES)
     1035 +
     1036 +TRACEOBJS=                      \
     1037 +        plockstat.o
     1038 +
     1039 +# NOTE: libc.so.1 must be linked with the minimal crti.o and crtn.o
     1040 +# modules whose source is provided in the $(SRC)/lib/common directory.
     1041 +# This must be done because otherwise the Sun C compiler would insert
     1042 +# its own versions of these modules and those versions contain code
     1043 +# to call out to C++ initialization functions.  Such C++ initialization
     1044 +# functions can call back into libc before thread initialization is
     1045 +# complete and this leads to segmentation violations and other problems.
     1046 +# Since libc contains no C++ code, linking with the minimal crti.o and
     1047 +# crtn.o modules is safe and avoids the problems described above.
     1048 +OBJECTS= $(CRTI) $(MOSTOBJS) $(CRTN)
     1049 +CRTSRCS= ../../common/i386
     1050 +
     1051 +LDPASS_OFF=     $(POUND_SIGN)
     1052 +
     1053 +# include common library definitions
     1054 +include ../../Makefile.lib
     1055 +
     1056 +# we need to override the default SONAME here because we might
     1057 +# be building a variant object (still libc.so.1, but different filename)
     1058 +SONAME = libc.so.1
     1059 +
     1060 +CFLAGS += $(CCVERBOSE) $(CTF_FLAGS)
     1061 +
     1062 +# This is necessary to avoid problems with calling _ex_unwind().
     1063 +# We probably don't want any inlining anyway.
     1064 +XINLINE = -xinline=
     1065 +CFLAGS += $(XINLINE)
     1066 +
     1067 +CERRWARN += -_gcc=-Wno-parentheses
     1068 +CERRWARN += -_gcc=-Wno-switch
     1069 +CERRWARN += -_gcc=-Wno-uninitialized
     1070 +CERRWARN += -_gcc=-Wno-unused-value
     1071 +CERRWARN += -_gcc=-Wno-unused-label
     1072 +CERRWARN += -_gcc=-Wno-unused-variable
     1073 +CERRWARN += -_gcc=-Wno-type-limits
     1074 +CERRWARN += -_gcc=-Wno-char-subscripts
     1075 +CERRWARN += -_gcc=-Wno-clobbered
     1076 +CERRWARN += -_gcc=-Wno-unused-function
     1077 +CERRWARN += -_gcc=-Wno-address
     1078 +
     1079 +# Setting THREAD_DEBUG = -DTHREAD_DEBUG (make THREAD_DEBUG=-DTHREAD_DEBUG ...)
     1080 +# enables ASSERT() checking in the threads portion of the library.
     1081 +# This is automatically enabled for DEBUG builds, not for non-debug builds.
     1082 +THREAD_DEBUG =
     1083 +$(NOT_RELEASE_BUILD)THREAD_DEBUG = -DTHREAD_DEBUG
     1084 +
     1085 +# Make string literals read-only to save memory.
     1086 +CFLAGS += $(XSTRCONST)
     1087 +
     1088 +ALTPICS= $(TRACEOBJS:%=pics/%)
     1089 +
     1090 +$(DYNLIB) := BUILD.SO = $(LD) -o $@ -G $(DYNFLAGS) $(PICS) $(ALTPICS) \
     1091 +                $(EXTPICS) $(LDLIBS)
     1092 +
     1093 +MAPFILES =      $(LIBCDIR)/port/mapfile-vers
     1094 +
  26 1095  #
  27      -# lib/libc/i386/Makefile
     1096 +# EXTN_CPPFLAGS and EXTN_CFLAGS set in enclosing Makefile
  28 1097  #
     1098 +CFLAGS +=       $(EXTN_CFLAGS)
     1099 +CPPFLAGS=       -D_REENTRANT -Di386 $(EXTN_CPPFLAGS) $(THREAD_DEBUG) \
     1100 +                -I$(LIBCBASE)/inc -I$(LIBCDIR)/inc $(CPPFLAGS.master)
     1101 +ASFLAGS=        $(AS_PICFLAGS) -P -D__STDC__ -D_ASM $(CPPFLAGS) $(i386_AS_XARCH)
  29 1102  
  30      -LIBCBASE=../i386
     1103 +# As a favor to the dtrace syscall provider, libc still calls the
     1104 +# old syscall traps that have been obsoleted by the *at() interfaces.
     1105 +# Delete this to compile libc using only the new *at() system call traps
     1106 +CPPFLAGS += -D_RETAIN_OLD_SYSCALLS
  31 1107  
  32      -EXTN_CPPFLAGS =
  33      -EXTN_XFLAGS =
     1108 +# Inform the run-time linker about libc specialized initialization
     1109 +RTLDINFO =      -z rtldinfo=tls_rtldinfo
     1110 +DYNFLAGS +=     $(RTLDINFO)
  34 1111  
  35      -LIBRARY =       libc.a
     1112 +# Force libc's internal references to be resolved immediately upon loading
     1113 +# in order to avoid critical region problems.  Since almost all libc symbols
     1114 +# are marked 'protected' in the mapfiles, this is a minimal set (15 to 20).
     1115 +DYNFLAGS +=     -znow
  36 1116  
  37      -# Special postprocessing for 32-bit fpcw.o: strip the SSE HWCAP attribute
  38      -# from the object file; the internal functions with SSE instructions are
  39      -# called conditionally on systems which have SSE instruction support
  40      -pics/fpcw.o := POST_PROCESS_O += ; \
  41      -        if $(ELFDUMP) -H $@ | grep " SSE "; then \
  42      -                $(ELFEDIT) -e 'cap:hw1 -and -cmp SSE' $@; \
  43      -        fi
     1117 +DYNFLAGS +=     -e __rtboot
     1118 +DYNFLAGS +=     $(EXTN_DYNFLAGS)
  44 1119  
  45      -include Makefile.com
     1120 +# Inform the kernel about the initial DTrace area (in case
     1121 +# libc is being used as the interpreter / runtime linker).
     1122 +DTRACE_DATA =   -zdtrace=dtrace_data
     1123 +DYNFLAGS +=     $(DTRACE_DATA)
     1124 +
     1125 +# DTrace needs an executable data segment.
     1126 +MAPFILE.NED=
     1127 +
     1128 +BUILD.s=        $(AS) $(ASFLAGS) $< -o $@
     1129 +
     1130 +# Override this top level flag so the compiler builds in its native
     1131 +# C99 mode.  This has been enabled to support the complex arithmetic
     1132 +# added to libc.
     1133 +C99MODE=        $(C99_ENABLE)
     1134 +
     1135 +# libc method of building an archive
     1136 +# The "$(GREP) -v ' L '" part is necessary only until
     1137 +# lorder is fixed to ignore thread-local variables.
     1138 +BUILD.AR= $(RM) $@ ; \
     1139 +        $(AR) q $@ `$(LORDER) $(MOSTOBJS:%=$(DIR)/%) | $(GREP) -v ' L ' | $(TSORT)`
     1140 +
     1141 +# extra files for the clean target
     1142 +CLEANFILES +=                   \
     1143 +        $(LIBCDIR)/port/gen/errlst.c    \
     1144 +        $(LIBCDIR)/port/gen/new_list.c  \
     1145 +        assym.h                 \
     1146 +        genassym                \
     1147 +        crt/_rtld.s             \
     1148 +        crt/_rtbootld.s         \
     1149 +        pics/_rtbootld.o        \
     1150 +        pics/crti.o             \
     1151 +        pics/crtn.o             \
     1152 +        $(ALTPICS)
     1153 +
     1154 +CLOBBERFILES += $(LIB_PIC)
     1155 +
     1156 +# list of C source for lint
     1157 +SRCS=                                                   \
     1158 +        $(ATOMICOBJS:%.o=$(SRC)/common/atomic/%.c)      \
     1159 +        $(XATTROBJS:%.o=$(SRC)/common/xattr/%.c)        \
     1160 +        $(COMOBJS:%.o=$(SRC)/common/util/%.c)           \
     1161 +        $(DTRACEOBJS:%.o=$(SRC)/common/dtrace/%.c)      \
     1162 +        $(PORTFP:%.o=$(LIBCDIR)/port/fp/%.c)                    \
     1163 +        $(PORTGEN:%.o=$(LIBCDIR)/port/gen/%.c)                  \
     1164 +        $(PORTI18N:%.o=$(LIBCDIR)/port/i18n/%.c)                \
     1165 +        $(PORTLOCALE:%.o=$(LIBCDIR)/port/locale/%.c)            \
     1166 +        $(PORTPRINT:%.o=$(LIBCDIR)/port/print/%.c)              \
     1167 +        $(PORTREGEX:%.o=$(LIBCDIR)/port/regex/%.c)              \
     1168 +        $(PORTSTDIO:%.o=$(LIBCDIR)/port/stdio/%.c)              \
     1169 +        $(PORTSYS:%.o=$(LIBCDIR)/port/sys/%.c)                  \
     1170 +        $(AIOOBJS:%.o=$(LIBCDIR)/port/aio/%.c)                  \
     1171 +        $(RTOBJS:%.o=$(LIBCDIR)/port/rt/%.c)                    \
     1172 +        $(SECFLAGSOBJS:%.o=$(SRC)/common/secflags/%.c)          \
     1173 +        $(TPOOLOBJS:%.o=$(LIBCDIR)/port/tpool/%.c)              \
     1174 +        $(THREADSOBJS:%.o=$(LIBCDIR)/port/threads/%.c)          \
     1175 +        $(THREADSMACHOBJS:%.o=$(LIBCDIR)/$(MACH)/threads/%.c)   \
     1176 +        $(UNICODEOBJS:%.o=$(SRC)/common/unicode/%.c)    \
     1177 +        $(UNWINDMACHOBJS:%.o=$(LIBCDIR)/port/unwind/%.c)        \
     1178 +        $(FPOBJS:%.o=$(LIBCDIR)/$(MACH)/fp/%.c)                 \
     1179 +        $(LIBCBASE)/gen/ecvt.c                          \
     1180 +        $(LIBCBASE)/gen/makectxt.c                      \
     1181 +        $(LIBCBASE)/gen/siginfolst.c                    \
     1182 +        $(LIBCBASE)/gen/siglongjmp.c                    \
     1183 +        $(LIBCBASE)/gen/strcmp.c                        \
     1184 +        $(LIBCBASE)/gen/sync_instruction_memory.c       \
     1185 +        $(LIBCBASE)/sys/ptrace.c                        \
     1186 +        $(LIBCBASE)/sys/uadmin.c
     1187 +
     1188 +# conditional assignments
     1189 +$(DYNLIB) := CRTI = crti.o
     1190 +$(DYNLIB) := CRTN = crtn.o
     1191 +
     1192 +# Files which need the threads .il inline template
     1193 +TIL=                            \
     1194 +        aio.o                   \
     1195 +        alloc.o                 \
     1196 +        assfail.o               \
     1197 +        atexit.o                \
     1198 +        atfork.o                \
     1199 +        cancel.o                \
     1200 +        door_calls.o            \
     1201 +        err.o                   \
     1202 +        errno.o                 \
     1203 +        lwp.o                   \
     1204 +        ma.o                    \
     1205 +        machdep.o               \
     1206 +        posix_aio.o             \
     1207 +        pthr_attr.o             \
     1208 +        pthr_barrier.o          \
     1209 +        pthr_cond.o             \
     1210 +        pthr_mutex.o            \
     1211 +        pthr_rwlock.o           \
     1212 +        pthread.o               \
     1213 +        rand.o                  \
     1214 +        rwlock.o                \
     1215 +        scalls.o                \
     1216 +        sched.o                 \
     1217 +        sema.o                  \
     1218 +        sigaction.o             \
     1219 +        sigev_thread.o          \
     1220 +        spawn.o                 \
     1221 +        stack.o                 \
     1222 +        synch.o                 \
     1223 +        tdb_agent.o             \
     1224 +        thr.o                   \
     1225 +        thread_interface.o      \
     1226 +        thread_pool.o           \
     1227 +        tls.o                   \
     1228 +        tsd.o                   \
     1229 +        tmem.o                  \
     1230 +        unwind.o
     1231 +
     1232 +THREADS_INLINES = $(LIBCBASE)/threads/i386.il
     1233 +$(TIL:%=pics/%) := CFLAGS += $(THREADS_INLINES)
     1234 +
     1235 +# pics/mul64.o := CFLAGS += $(LIBCBASE)/crt/mul64.il
     1236 +
     1237 +# large-file-aware components that should be built large
     1238 +
     1239 +$(COMSYSOBJS64:%=pics/%) := \
     1240 +        CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
     1241 +
     1242 +$(SYSOBJS64:%=pics/%) := \
     1243 +        CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
     1244 +
     1245 +$(PORTGEN64:%=pics/%) := \
     1246 +        CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
     1247 +
     1248 +$(PORTREGEX64:%=pics/%) := \
     1249 +        CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
     1250 +
     1251 +$(PORTSTDIO64:%=pics/%) := \
     1252 +        CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
     1253 +
     1254 +$(PORTSYS64:%=pics/%) := \
     1255 +        CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
     1256 +
     1257 +$(PORTSTDIO_W:%=pics/%) := \
     1258 +        CPPFLAGS += -D_WIDE
     1259 +
     1260 +$(PORTPRINT_W:%=pics/%) := \
     1261 +        CPPFLAGS += -D_WIDE
     1262 +
     1263 +$(PORTPRINT_C89:%=pics/%) := \
     1264 +        CPPFLAGS += -D_C89_INTMAX32
     1265 +
     1266 +$(PORTSTDIO_C89:%=pics/%) := \
     1267 +        CPPFLAGS += -D_C89_INTMAX32
     1268 +
     1269 +$(PORTI18N_COND:%=pics/%) := \
     1270 +        CPPFLAGS += -D_WCS_LONGLONG
     1271 +
     1272 +pics/arc4random.o :=    CPPFLAGS += -I$(SRC)/common/crypto/chacha
     1273 +
     1274 +pics/__clock_gettime.o := CPPFLAGS += $(COMMPAGE_CPPFLAGS)
     1275 +
     1276 +.KEEP_STATE:
     1277 +
     1278 +all: $(LIBS) $(LIB_PIC)
     1279 +
     1280 +lint    :=      CPPFLAGS += -I$(LIBCDIR)/$(MACH)/fp
     1281 +lint    :=      CPPFLAGS += -D_MSE_INT_H -D_LCONV_C99
     1282 +lint    :=      LINTFLAGS += -mn -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
     1283 +
     1284 +lint:
     1285 +        @echo $(LINT.c) ...
     1286 +        @$(LINT.c) $(SRCS) $(LDLIBS)
     1287 +
     1288 +$(LINTLIB):= SRCS=$(LIBCDIR)/port/llib-lc
     1289 +$(LINTLIB):= CPPFLAGS += -D_MSE_INT_H
     1290 +$(LINTLIB):= LINTFLAGS=-nvx
     1291 +
     1292 +# object files that depend on inline template
     1293 +$(TIL:%=pics/%): $(LIBCBASE)/threads/i386.il
     1294 +# pics/mul64.o: $(LIBCBASE)/crt/mul64.il
     1295 +
     1296 +# include common libc targets
     1297 +include $(LIBCDIR)/Makefile.targ
     1298 +
     1299 +# We need to strip out all CTF and DOF data from the static library
     1300 +$(LIB_PIC) := DIR = pics
     1301 +$(LIB_PIC): pics $$(PICS)
     1302 +        $(BUILD.AR)
     1303 +        $(MCS) -d -n .SUNW_ctf $@ > /dev/null 2>&1
     1304 +        $(MCS) -d -n .SUNW_dof $@ > /dev/null 2>&1
     1305 +        $(AR) -ts $@ > /dev/null
     1306 +        $(POST_PROCESS_A)
     1307 +
     1308 +$(LIBCBASE)/crt/_rtbootld.s: $(LIBCBASE)/crt/_rtboot.s $(LIBCBASE)/crt/_rtld.c
     1309 +        $(CC) $(CPPFLAGS) $(CTF_FLAGS) -O -S $(C_PICFLAGS) \
     1310 +            $(LIBCBASE)/crt/_rtld.c -o $(LIBCBASE)/crt/_rtld.s
     1311 +        $(CAT) $(LIBCBASE)/crt/_rtboot.s $(LIBCBASE)/crt/_rtld.s > $@
     1312 +        $(RM) $(LIBCBASE)/crt/_rtld.s
     1313 +
     1314 +# partially built from C source
     1315 +pics/_rtbootld.o: $(LIBCBASE)/crt/_rtbootld.s
     1316 +        $(AS) $(ASFLAGS) $(LIBCBASE)/crt/_rtbootld.s -o $@
     1317 +        $(CTFCONVERT_O)
     1318 +
     1319 +ASSYMDEP_OBJS=                  \
     1320 +        _lwp_mutex_unlock.o     \
     1321 +        _stack_grow.o           \
     1322 +        getcontext.o            \
     1323 +        setjmp.o                \
     1324 +        tls_get_addr.o          \
     1325 +        vforkx.o
     1326 +
     1327 +$(ASSYMDEP_OBJS:%=pics/%)       :=      CPPFLAGS += -I.
     1328 +
     1329 +$(ASSYMDEP_OBJS:%=pics/%): assym.h
     1330 +
     1331 +# assym.h build rules
     1332 +
     1333 +GENASSYM_C = $(LIBCDIR)/$(MACH)/genassym.c
     1334 +
     1335 +genassym: $(GENASSYM_C)
     1336 +        $(NATIVECC) $(NATIVE_CFLAGS) -I$(LIBCBASE)/inc -I$(LIBCDIR)/inc \
     1337 +                -D__EXTENSIONS__ $(CPPFLAGS.native) -o $@ $(GENASSYM_C)
     1338 +
     1339 +OFFSETS = $(LIBCDIR)/$(MACH)/offsets.in
     1340 +
     1341 +assym.h: $(OFFSETS) genassym
     1342 +        $(OFFSETS_CREATE) <$(OFFSETS) >$@
     1343 +        ./genassym >>$@
     1344 +
     1345 +# derived C source and related explicit dependencies
     1346 +$(LIBCDIR)/port/gen/errlst.c + \
     1347 +$(LIBCDIR)/port/gen/new_list.c: $(LIBCDIR)/port/gen/errlist $(LIBCDIR)/port/gen/errlist.awk
     1348 +        cd $(LIBCDIR)/port/gen; pwd; $(AWK) -f errlist.awk < errlist
     1349 +
     1350 +pics/errlst.o: $(LIBCDIR)/port/gen/errlst.c
     1351 +
     1352 +pics/new_list.o: $(LIBCDIR)/port/gen/new_list.c
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX