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