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