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