2N/A# The contents of this file are subject to the terms of the 2N/A# Common Development and Distribution License (the "License"). 2N/A# You may not use this file except in compliance with the License. 2N/A# See the License for the specific language governing permissions 2N/A# and limitations under the License. 2N/A# When distributing Covered Code, include this CDDL HEADER in each 2N/A# If applicable, add the following below this CDDL HEADER, with the 2N/A# fields enclosed by brackets "[]" replaced with your own identifying 2N/A# information: Portions Copyright [yyyy] [name of copyright owner] 2N/A# Copyright (c) 1989, 2012, Oracle and/or its affiliates. All rights reserved. 2N/A# objects are grouped by source directory 2N/A# Symbol capabilities objects. 2N/A# sysobjs that contain large-file interfaces 2N/A# objects under $(LIBCDIR)/port which contain transitional large file interfaces 2N/A# objects from source under $(LIBCDIR)/port 2N/A# c89 variants to support 32-bit size of c89 u/intmax_t (32-bit libc only) 2N/A# portable stdio objects that contain large file interfaces. 2N/A# Note: fopen64 is a special case, as we build it small. 2N/A# objects that implement the transitional large file API 2N/A# modules whose source is provided in the $(SRC)/lib/common directory. 2N/A# This must be done because otherwise the Sun C compiler would insert 2N/A# its own versions of these modules and those versions contain code 2N/A# to call out to C++ initialization functions. Such C++ initialization 2N/A# functions can call back into libc before thread initialization is 2N/A# complete and this leads to segmentation violations and other problems. 2N/A# Since libc contains no C++ code, linking with the minimal crti.o and 2N/A# crtn.o modules is safe and avoids the problems described above. 2N/A# include common library definitions 2N/A# Adjust FPASMOBJS now that __GNUC is inherited. 2N/A# conditions such as the settings of CFLAGS and CPPFLAGS for the libc_i18n stuff 2N/A# need to be compatible with the ones for the libc stuff. Whenever the changes 2N/A# that affect the compilation conditions of libc happened, those for libc_i18n 2N/A# also need to be updated. 2N/A# we need to override the default SONAME here because we might 2N/A# be building a variant object (still libc.so.1, but different filename) 2N/A# This is necessary to avoid problems with calling _ex_unwind(). 2N/A# We probably don't want any inlining anyway. 2N/A# Setting THREAD_DEBUG = -DTHREAD_DEBUG (make THREAD_DEBUG=-DTHREAD_DEBUG ...) 2N/A# enables ASSERT() checking in the threads portion of the library. 2N/A# This is automatically enabled for DEBUG builds, not for non-debug builds. 2N/A# Inform the run-time linker about libc specialized initialization 2N/A# Force libc's internal references to be resolved immediately upon loading 2N/A# in order to avoid critical region problems. Since almost all libc symbols 2N/A# are marked 'protected' in the mapfiles, this is a minimal set (15 to 20). 2N/A# Inform the kernel about the initial DTrace area (in case 2N/A# libc is being used as the interpreter / runtime linker). 2N/A# DTrace needs an executable data segment. 2N/A# Override this top level flag so the compiler builds in its native 2N/A# C99 mode. This has been enabled to support the complex arithmetic 2N/A# libc method of building an archive 2N/A# The "$(GREP) -v ' L '" part is necessary only until 2N/A# lorder is fixed to ignore thread-local variables. 2N/A# extra files for the clean target 2N/A# list of C source for lint 2N/A# conditional assignments 2N/A# Files which need the threads .il inline template 2N/A# This hack is needed until the sparc gcc is fixed for TLS 2N/A# special kludge for inlines with 'cas': 2N/A# Files in fp subdirectory which need __quad.il inline template 2N/A# large-file-aware components that should be built large 2N/A# Files which need extra optimization 2N/A# object files that depend on inline template 2N/A# include common libc targets 2N/A# We need to strip out all CTF and DOF data from the static library 2N/A# partially built from C source 2N/A# derived C source and related explicit dependencies